LeetCode - 345. Reverse Vowels of a String 反转字符串中的元音字母
题目
解析
也是使用两个指针扫描,从两边到中间扫:
- 只要其中一个不是元音字母,那个指针就往中间移动,继续下一次循环;
- 只有两个都是元音字母,才交换位置;
class Solution {
public boolean isU(char c) {
return c == 'a' || c == 'o' || c == 'e' || c == 'u' || c == 'i'
|| c == 'A' || c == 'O' || c == 'E' || c == 'U' || c == 'I';
}
public String reverseVowels(String s) {
char[] str = s.toCharArray();
for (int l = 0, r = str.length - 1; l < r; ) {
if (!isU(str[l])) {
l++;
continue;
}
if (!isU(str[r])) {
r--;
continue;
}
if (isU(str[l]) && isU(str[r])) {
char t = str[l];
str[l] = str[r];
str[r] = t;
l++;
r--;
}
}
return String.valueOf(str);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论