Amazon 面試題 | 反轉母音字母

九章演算法發表於2017-09-02

專欄 | 九章演算法
網址 | www.jiuzhang.com

題目描述

完成一個函式,讀入一個字串,把其中的母音字母反轉,返回反轉後的字串。

Example 1:
s = "hello", 返回 "holle".
Example 2:
s = "leetcode", 返回 "leotcede".

解題思路分析

如果考慮一個更簡單的問題:如何反轉一個字串,相信大家都能馬上想到演算法,因為我們知道每個位置的字元在反轉後會出現在什麼位置。

方法一 翻轉id
本題中只需要反轉母音字母,同樣的,我們希望知道每個母音字母在反轉後應該出現在什麼位置。因此我們用一個position陣列記錄母音字母的位置,然後進行反轉即可。演算法複雜度為O(N),N是字串長度。

方法二 兩個指標的方法
本題還有另外一種思路,那就是two pointer。一個指標從前往後掃描,一個指標從後往前掃描,遇到母音字母是進行交換,直到兩個指標相遇,演算法終止。演算法複雜度同樣是O(N)。

參考程式

解題思路分析
這題在所有面試的題目中屬於easy型別的題目,給出時間複雜度為O(N)(N為字串長度)的演算法可以進入到下一個階段(面試官會給出更難的題目)。


推薦閱讀:



歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等

九章演算法,IT教育領域的深耕者
九章演算法,IT教育領域的深耕者

相關文章