跳出“反转”,其实可以遍历字符串放入新的数组里面来实现反转;善用set
来判断重复
题目描述
给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 ‘a’、’e’、’i’、’o’、’u’,且可能以大小写两种形式出现。
示例 1:
输入:s = “hello”
输出:”holle”
示例 2:
输入:s = “leetcode”
输出:”leotcede”
思路
看输出,可以看到前后的元音字母进行了位置交换,可以想到是同时操作两个字符来进行比较,所以用双指针会很方便;
关于反转:其实就是交换前后两个元音字母,是不是可以不交换?可以双向遍历,然后把元素放入一个新的字符数组,然后遇到两个都是元音字母的情况,放的位置变一下即可,就是该往前放的放后面,该往后放的放前面;
关于判断元音字母:可以把元音字母放到set里面,set里面判断是否存在时间复杂度为O(1),方便判断而且高效
代码
Java
1 | public String reverseVowels(String s) { |