Java教程

每日一题.345. 反转字符串中的元音字母

本文主要是介绍每日一题.345. 反转字符串中的元音字母,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

解题思路

双指针

代码

class Solution {
    char[] chars;
    public String reverseVowels(String s) {
        chars = s.toCharArray();
        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 low = 0,high = s.length()-1;
        while (low<high){
            while (low<s.length()-1 && !set.contains(chars[low])){
                low++;
            }
            while (high>=0 && !set.contains(chars[high])){
                high--;
            }
            if (low<high){
                // System.out.println(low);
                // System.out.println(high);
                swap(low,high);
                low++;
                high--;
            }
        }
        return new String(chars);
    }
    public void swap(int low,int high){
        char tem = chars[low];
        chars[low]=chars[high];
        chars[high]=tem;
    }
}
这篇关于每日一题.345. 反转字符串中的元音字母的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!