编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello" 输出: "holle"
示例 2:
输入: "leetcode" 输出: "leotcede"
说明:
元音字母不包含字母"y"。
- 双指针操作
func reverseVowels(s string) string {
vowel := map[rune]bool{
'a': true,
'e': true,
'i': true,
'o': true,
'u': true,
}
p, q := 0, len(s)-1
ret := []byte(s)
for p < q {
_, ok1 := vowel[unicode.ToLower(rune(ret[p]))]
if !ok1 {
p++
}
_, ok2 := vowel[unicode.ToLower(rune(ret[q]))]
if !ok2 {
q--
}
if ok1 && ok2 {
ret[p], ret[q] = ret[q], ret[p]
p++
q--
}
}
return string(ret)
}