编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
思路:双指针
注:要加好指针的判断,不能越界。
1 class Solution(object):
2 def reverseVowels(self, s):
3 """
4 :type s: str
5 :rtype: str
6 """
7 # 元音字母集合
8 love = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
9 # 将原串转成集合,方便交换元素
10 lists = list(s)
11 # print(lists)
12 i = 0
13 j = len(lists) - 1
14 while i < j:
15 if i < j and lists[i] not in love:
16 i += 1
17 if i < j and lists[j] not in love:
18 j -= 1
19 # 当i、j指向的元素都是元音时才交换
20 if i < j and lists[i] in love and lists[j] in love:
21 lists[i], lists[j] = lists[j], lists[i]
22 i += 1
23 j -= 1
24 return ''.join(lists)
25
26 if __name__ == '__main__':
27 solution = Solution()
28 print(solution.reverseVowels("leetcode"))
29 print(solution.reverseVowels("hello"))
30 print(solution.reverseVowels("a.b,."))