
还是一道简单的string类型的题目

思路很自然想到了,双指针,然后一个从前往后一个从后往前,遇到都是元音的时候就交换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class (object): def reverseVowels(self, s): """ :type s: str :rtype: str """ ns = list(s) vowels = ['a','e','i','o','u','A','E','I','O','U'] front = 0 later = len(ns)-1 while(front<later): if(ns[front] not in vowels): front+=1 if(ns[later] not in vowels): later-=1 if(ns[later] in vowels and ns[front] in vowels): ns[later],ns[front] = ns[front],ns[later] later-=1 front+=1 return "".join(ns)
|
一种快一点的解法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class (object): def reverseVowels(self, s): """ :type s: str :rtype: str """ ns = list(s) vowels = ['a','e','i','o','u','A','E','I','O','U'] front = 0 later = len(ns)-1 while(front<later): while(ns[front] not in vowels and front < later): front+=1 while(ns[later] not in vowels and front < later): later-=1 if later <= front: break ns[front],ns[later] = ns[later],ns[front] front+=1 later-=1
|
参考资料
近期评论