【LeetCode】反转字符串中的元音字母 Java 题解
题目描述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
复制代码
思路分析
今天的每日一题是简单题目,要求交换元音字母。题目中没有给出元音字母,搜索一下,元音字母是 aeiouAEIOU。理解了元音字母,题目就好解决了。
下面的解法使用了双指针的技巧。双指针简单描述就是使用两个指针移动,提升遍历效率,一般应用在数组相关的题目中。
常见的双指针有首尾指针,也就是从首,尾同时遍历,本题用到了这个解法。从首尾分别找元音字母,然后交换。这里有个需要注意的地方,在交换之后要使指针移动,指向下一个位置,才能使程序正确
常见的双指针还有快慢指针,一般用来判断有没有环。
通过代码
复制代码
总结
上述代码的时间复杂度是 O(n), 空间复杂度是 O(n)
字符串题目还常常用来考察各位对编程语言 API 的熟悉程度。比如:trim(), split() 等函数使用,可以帮助我们简化代码,提升效率。需要大家熟悉。
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/c7e20a4d73a2a24f1f65efb78】。文章转载请联系作者。
评论