public class Solution {
public String reverseVowels(String s) {
HashSet<Character> hs = new HashSet<>();
hs.add('a');
hs.add('e');
hs.add('i');
hs.add('o');
hs.add('u');
hs.add('A');
hs.add('E');
hs.add('I');
hs.add('O');
hs.add('U');
int low = 0, high = s.length()-1;
StringBuilder sb = new StringBuilder(s);
while (low < high) {
while (low < high && !hs.contains(sb.charAt(low))) low++;
while (low < high && !hs.contains(sb.charAt(high))) high--;
// swap low and high
char tmp = sb.charAt(low);
sb.setCharAt(low, sb.charAt(high));
sb.setCharAt(high, tmp);
low++;
high--;
}
return sb.toString();
}
}
Leetcode 345. Reverse Vowels of a String
最新推荐文章于 2021-08-25 04:49:10 发布