题干
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例1:
输入:"hello"
输出:"holle"
解法:
思路:其实一看到这种类似于替换的题,我们应该首先想到的就是双指针,前指针向后遍历,后指针向前遍历,在每次循环初始时判断前后指针对应的值:
- 如果都是元音,交换,且指针前/后移
- 分别单独判断前后指针是否是原因字母,若是则保留当前指针位置,若不是则前/后移
代码实现:
var reverseVowels = function (s) {
let arrs = s.split('')
let arr = ['a', 'o', 'e', 'i', 'u', 'A', 'O', 'E', 'I', 'U']
let begin = 0, end = s.length - 1;
while (begin < end) {
if (arr.includes(s[begin]) && arr.includes(s[end])) {
// 将字符串转为数组,进行元素的替换,最后再转会字符串
let temp = arrs[begin];
arrs[begin] = arrs[end];
arrs[end] = temp;
begin += 1;
end -= 1;
} else {
if (arr.includes(arrs[begin])) {
begin = begin
} else {
begin += 1
}
if (arr.includes(arrs[end])) {
end = end
} else {
end -= 1
}
}
}
return arrs.join('');
};
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!