1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// @Title: 反转字符串中的元音字母 (Reverse Vowels of a String)
// @Author: 15816537946@163.com
// @Date: 2019-11-15 16:26:23
// @Runtime: 4 ms
// @Memory: 4 MB
func reverseVowels(s string) string {
	bytes := []byte(s)
	lo, hi := 0, len(bytes)-1
	for lo<hi {
		if !isVowels(bytes[lo]) {
			lo++
		}
		if !isVowels(bytes[hi]) {
			hi--
		}
		if isVowels(bytes[hi]) && isVowels(bytes[lo]) {
		bytes[lo], bytes[hi] = bytes[hi],bytes[lo]
		lo++
		hi--
		}
	}
	return string(bytes)
}

func isVowels(b byte) bool {
	if b == 'a' || b =='e' || b== 'i' || b =='o' || b == 'u' || b == 'A' || b == 'E' || b == 'I' || b=='O' || b == 'U'{ 
		return true
	}
	return false
}