Computer science note/LeetCode
Reverse Vowels of a String
Leetcode problem description and solution for "Reverse Vowels of a String".
LeetCode - The World's Leading Online Programming Learning Platform
Given a string s
, reverse only all the vowels in the string and return it.
给定一个字符串,只反转字符串 s
中的所有元音并返回它。
The vowels are 'a'
, 'e'
, 'i'
, 'o'
, and 'u'
, and they can appear in both lower and upper cases, more than once.
元音是 'a'
、、 'e'
'i'
和 'o'
'u'
,它们可以多次出现在小写和大写中。
Example 1: 示例 1:
Input: s = "hello" Output: "holle"
Example 2: 示例 2:
Input: s = "leetcode" Output: "leotcede"
Constraints: 约束:
1 <= s.length <= 3 * 105
s
consist of printable ASCII characters.
s
由可打印的 ASCII 字符组成。
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
vowels = "aeiouAEIOU"
s = list(s)
left = 0
right = len(s) - 1
while left < right:
if s[left] in vowels and s[right] in vowels:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
elif s[left] not in vowels:
left += 1
elif s[right] not in vowels:
right -= 1
return "".join(s)
def test(self):
s = "hello"
expected = "holle"
actual = self.reverseVowels(s)
if actual == expected:
print("Test passed.")
else:
print("Test failed. %s != %s" % (actual, expected))
if __name__ == "__main__":
Solution().test()