mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-25 12:14:26 +08:00
28 lines
536 B
Go
28 lines
536 B
Go
package leetcode
|
|
|
|
func reverseVowels(s string) string {
|
|
b := []byte(s)
|
|
for i, j := 0, len(b)-1; i < j; {
|
|
if isVowels(b[i]) && isVowels(b[j]) {
|
|
b[i], b[j] = b[j], b[i]
|
|
i++
|
|
j--
|
|
} else if isVowels(b[i]) && !isVowels(b[j]) {
|
|
j--
|
|
} else if !isVowels(b[i]) && isVowels(b[j]) {
|
|
i++
|
|
} else {
|
|
i++
|
|
j--
|
|
}
|
|
}
|
|
return string(b)
|
|
}
|
|
|
|
func isVowels(s byte) bool {
|
|
if s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u' || s == 'A' || s == 'E' || s == 'I' || s == 'O' || s == 'U' {
|
|
return true
|
|
}
|
|
return false
|
|
}
|