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教育领域的深耕者