Amazon 面試題 | 反轉元音字母

專欄 | 九章算法
網址 | www.jiuzhang.com程序員

題目描述面試

完成一個函數,讀入一個字符串,把其中的元音字母反轉,返回反轉後的字符串。算法

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

解題思路分析數組

若是考慮一個更簡單的問題:如何反轉一個字符串,相信你們都能立刻想到算法,由於咱們知道每一個位置的字符在反轉後會出如今什麼位置。微信

方法一 翻轉id
本題中只須要反轉元音字母,一樣的,咱們但願知道每一個元音字母在反轉後應該出如今什麼位置。所以咱們用一個position數組記錄元音字母的位置,而後進行反轉便可。算法複雜度爲O(N),N是字符串長度。編程語言

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

參考程序post

解題思路分析
這題在全部面試的題目中屬於easy類型的題目,給出時間複雜度爲O(N)(N爲字符串長度)的算法能夠進入到下一個階段(面試官會給出更難的題目)。ui


推薦閱讀:



歡迎關注個人微信公衆號:九章算法(ninechapter)。
精英程序員交流社區,按期發佈面試題、面試技巧、求職信息等

九章算法,IT教育領域的深耕者
九章算法,IT教育領域的深耕者
相關文章
相關標籤/搜索