反转字符串中的元音字符
Given s = "leetcode", return "leotcede"
题目描述:
给定一个字符串,将字符串中的元音字母交换,返回交换后的字符串。
思路分析:
使用双指针指向待反转的两个元音字符,一个指针从头向尾进行遍历,一个指针从尾到头遍历。
代码:
private final static HashSetvowels=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);}