345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母
示例 1:
输入:"hello"
输出:"holle"
示例 2:
输入:"leetcode"
输出:"leotcede
func reverseVowels(s string) string {
//将字符串转换成字节列表,好操作
news := []byte(s)
//初始化左右指针位置
left, right := 0, len(s)-1
//设置左右指针状态
lefbool, rightbool := true, true
for left < right {
//如果是元音而且状态为true,则改变当前状态,停止左指针移动,直至右指针也找到元音字母为止
if isyuanying(news[left]) && lefbool {
lefbool = false
} else if lefbool {
left++
}
//同上,当右指针找到元音字母时,停止移动
if isyuanying(news[right]) && rightbool {
rightbool = false
} else if rightbool {
right--
}
//将左右指针的值对调,然后继续开始索引
if lefbool == false && rightbool == false {
//左右指针值对调
news[left], news[right] = news[right], news[left]
//更新状态
lefbool = true
rightbool = true
left++
right--
}
}
return string(news)
}
//判断是否是元音字母
func isyuanying(temp byte) bool {
switch temp {
case 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U':
return true
default:
return false
}
}