题目: 反转字符串中的元音字母

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 1:

输入: "hello"
输出: "holle"

示例 2:

输入: "leetcode"
输出: "leotcede"

说明: 元音字母不包含字母"y"。

解题

双指针法:

/**
* @param {string} s
* @return {string}
*/
var reverseVowels = function(s) {
let left = 0, right = s.length - 1
let result = s
while (left <= right) {
const isValidateLeft = isValidate(s[left])
const isValidateRight = isValidate(s[right])
if (isValidateLeft && isValidateRight) {
result = swap(result, left, right)
left++
right--
}
if (!isValidateLeft) {
left++
}
if (!isValidateRight) {
right--
}
}
return result
}
var isValidate = (value) => {
return /a|e|i|o|u|A|E|I|O|U/.test(value)
}
/* 交换位置
a, b 为下标
*/
var swap = function(str, a, b) {
const arr = str.split('')
const tmp = arr[a]
arr[a] = arr[b]
arr[b] = tmp
return arr.join('')
}

Sister Title

125、167、344