Skip to content

Latest commit

 

History

History

0345.reverse-vowels-of-a-string

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

题目描述

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 1:

输入: "hello"
输出: "holle"

示例 2:

输入: "leetcode"
输出: "leotcede"

说明:
元音字母不包含字母"y"。

解题思路

  1. 双指针操作

代码实现

Golang

func reverseVowels(s string) string {
	vowel := map[rune]bool{
		'a': true,
		'e': true,
		'i': true,
		'o': true,
		'u': true,
	}
	p, q := 0, len(s)-1
	ret := []byte(s)
	for p < q {
		_, ok1 := vowel[unicode.ToLower(rune(ret[p]))]
		if !ok1 {
			p++
		}
		_, ok2 := vowel[unicode.ToLower(rune(ret[q]))]
		if !ok2 {
			q--
		}
		if ok1 && ok2 {
			ret[p], ret[q] = ret[q], ret[p]
			p++
			q--
		}
	}
	return string(ret)
}