345. 反转字符串中的元音字母

小豆丁 1年前 ⋅ 793 阅读
345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

 

示例 1:

输入:"hello"
输出:"holle"
示例 2:

输入:"leetcode"
输出:"leotcede"

解析

直接双指针搞定

class Solution {
    public String reverseVowels(String s) {
        Set<Character> set = new HashSet<>();
        set.add('a');set.add('e');set.add('i');set.add('o');set.add('u');
        set.add('A');set.add('E');set.add('I');set.add('O');set.add('U');
        int start = 0 ;
        int end = s.length() - 1;
        char[] vals = s.toCharArray();
        while(start<end){
            while((start< end )&& (!set.contains(vals[start]))){
                start++;
            }
            while((start< end )&& (!set.contains(vals[end]))){
                end--;
            }
            char tmp = vals[start];
            vals[start++] = vals[end];
            vals[end--] = tmp;
        }
        return new String(vals);
    }
    
}