345. 反转字符串中的元音字母

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

示例 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,."))

 

 
posted @ 2020-04-11 20:46  人间烟火地三鲜  阅读(150)  评论(0编辑  收藏  举报