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

时间:2019-06-28 19:39:47   收藏:0   阅读:116

反转字符串中的元音字符

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);
}
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!