双指针---反转字符串中的元音字符

反转字符串中的元音字符

345. Reverse Vowels of a String (Easy)

Given s = "leetcode", return "leotcede"

题目描述:

  给定一个字符串,将字符串中的元音字母交换,返回交换后的字符串。

思路分析:

  使用双指针指向待反转的两个元音字符,一个指针从头向尾进行遍历,一个指针从尾到头遍历。

代码:

private final static HashSet<Character>vowels=new HashSet<>(Arrays.asList('a','e','i','o','u','A','E','I','O','U'));
public String reverseVowels(String s){
    int i=0;
    int j=s.length()-1;
    char []res=new char [s.length()];
    while(i<=j){
        char ci=s.charAt(i)
        char cj=s.charAt(j)
            if(!vowels.contains(ci)){
                res[i++]=ci;
            }else if(!vowels.contains(cj)){
                res[j--]=cj;
            }else{
                res[i++]=cj;
                res[j--]=ci;
            }
    }
    return new String(res);
}

猜你喜欢

转载自www.cnblogs.com/yjxyy/p/11104389.html