345. 反转字符串中的元音字母 简单
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:"hello"
输出:"holle"
示例 2:
输入:"leetcode"
输出:"leotcede"
提示:
- 元音字母不包含字母 “y” 。
代码参考:
package main
import "fmt"
func main() {
fmt.Println(reverseVowels("ai"))
}
// 和对称相关的,考虑 2 种对称遍历方式
// ... --l, mid, r++ ... // 考虑各种边界问题
// l++, ..., --r // l <= r 相遇即边界
func reverseVowels(s string) string {
if s == "" {
return s
}
runes := []rune(s)
n := len(runes)
l, r := 0, n-1
for l <= r {
for l < r && !isVowel(runes[l]) {
l++
}
for r > l && !isVowel(runes[r]) {
r--
}
if isVowel(runes[l]) && isVowel(runes[r]) {
runes[l], runes[r] = runes[r], runes[l]
}
l++
r--
}
return string(runes)
}
func isVowel(r rune) bool {
switch r {
case 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U':
return true
default:
return false
}
}
最后编辑: kuteng 文档更新时间: 2021-06-05 10:16 作者:kuteng