当前位置:网站首页>leetcode之反转字符串中的元音字母
leetcode之反转字符串中的元音字母
2020-11-08 23:48:00 【go4it】
序
本文主要记录一下leetcode之反转字符串中的元音字母
题目
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:"hello"
输出:"holle"
示例 2:
输入:"leetcode"
输出:"leotcede"
提示:
元音字母不包含字母 "y" 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
class Solution {
Set<Character> set = new HashSet(){{
add('a');
add('e');
add('i');
add('o');
add('u');
add('A');
add('E');
add('I');
add('O');
add('U');
}};
public String reverseVowels(String s) {
int i = 0;
int j = s.length() - 1;
char[] chars = s.toCharArray();
while(i < j) {
while (!set.contains(chars[i]) && i<j) {
i++;
}
while (!set.contains(chars[j]) && i<j) {
j--;
}
if (i < j) {
char tmp = chars[i];
chars[i] = chars[j];
chars[j] = tmp;
i++;
j--;
}
}
return new String(chars);
}
}
小结
这里先使用HashSet存放大小写的元音字母,之后使用头尾指针同时对字符串数组进行遍历,当i指向的字符与j指向的字符都是元音时,进行交换同时更新指针,不是元音字符时仅仅更新指针。
doc
版权声明
本文为[go4it]所创,转载请带上原文链接,感谢
https://my.oschina.net/go4it/blog/4708427
边栏推荐
猜你喜欢
Experiment 1 assignment
大数据岗位基础要求有哪些?
Dynamic planning
Five factors to consider before choosing API management platform
Newbe.ObjectVisitor 样例 1
实现图片的复制
服务器性能监控神器nmon使用介绍
APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
. net core cross platform resource monitoring library and dotnet tool
salesforce零基础学习(九十八)Salesforce Connect & External Object
随机推荐
Decorator (1)
How to make scripts compatible with both Python 2 and python 3?
装饰器(一)
SAP S/4HANA 2020安装实录
Programmers should know the URI, a comprehensive understanding of the article
Esockettimeout solution in request in nodejs
Solve the failure of go get download package
程序员都应该知道的URI,一文帮你全面了解
经典动态规划:最长公共子序列
AQS 都看完了,Condition 原理可不能少!
APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
为什么需要使用API管理平台
Factory pattern pattern pattern (simple factory, factory method, abstract factory pattern)
理论与实践相结合彻底理解CORS
Case analysis of entitycore framework
Five factors to consider before choosing API management platform
你有没有想过为什么交易和退款要拆开不同的表
Using annotation + interceptor to implement asynchronous execution
C/C++学习日记:原码、反码和补码
教你如何 分析 Android ANR 问题