【力扣345】反转字符串中的元音字母——easy
前言
本文旨在记录与分享个人的刷题经验,因水平受限,观点难免偏颇,欢迎大家在评论区交流意见
LeetCode 345. 反转字符串中的元音字母
给你一个字符串s
,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括'a'
、'e'
、'i'
、'o'
、'u'
,且可能以大小写两种形式出现。
示例 1:
输入:s = "hello"
输出:"holle"
示例 2:
输入:s = "leetcode"
输出:"leotcede"
提示:
1 <= s.length <= 3 * 105
s
由 可打印的 ASCII 字符组成
解法一:双指针法—— O ( n ) O(n) O(n)
思路——双指针分别从两端往中间遍历,匹配并交换
分析:
- 平平无奇双指针,从两端往中间遍历,并匹配目标元素
- 任意指针匹配到了,就停下等另一个匹配
- 都匹配了,再交换元素,继续遍历
步骤——遍历取值 → \rightarrow →双方匹配 → \rightarrow →交换
- ①转换:首先,将字符串
s
用s.CharArray()
方法转换成字符数组 - ②设置目标字符串:将元音字符包括大小写全部存入目标字符串中
- ③双指针遍历匹配:左右指针向中间遍历,如果任意指针匹配到,则停下,直到两个指针都匹配到了,进行交换然后继续遍历
- ④注意点:
- Ⅰ.匹配方式——
str.indexof() != -1;
如果用str.contains()
则会匹配失败,原因是char cannot be converted to CharSequence
- Ⅱ.返回值类型——记得返回
String
类型的值
- Ⅰ.匹配方式——