345. Reverse Vowels of a String
Easy
Given a string
s
, reverse only all the vowels in the string and return it.The vowels are
'a'
, 'e'
, 'i'
, 'o'
, and 'u'
, and they can appear in both lower and upper cases, more than once.Example 1:
Input: s = "hello"
Output:
"holle"
Example 2:
Input: s = "leetcode"
Output:
"leotcede"
Constraints:
1 <= s.length <= 3 * 105
s
consist of printable ASCII characters.
Runtime: 4 ms, faster than 87.88%
Memory Usage: 3.9 MB, less than 100%
func reverseVowels(s string) string {
left := 0
right := len(s) - 1
newStr := []byte(s)
for left < right {
if checkVowels(newStr[left]) && checkVowels(newStr[right]) {
tmp := newStr[left]
newStr[left] = newStr[right]
newStr[right] = tmp
left++
right--
} else if !checkVowels(newStr[left]) {
left++
} else if !checkVowels(newStr[right]) {
right--
}
}
return string(newStr)
}
func checkVowels(char byte) bool {
vowels := []byte{'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
for i := 0; i < len(vowels); i++ {
if char == vowels[i] { return true }
}
return false
}
Last modified 6mo ago