Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 269e21c

Browse files
committed
add reverse vowels
1 parent 53d7fbc commit 269e21c

File tree

5 files changed

+44
-5
lines changed

5 files changed

+44
-5
lines changed
Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
11
class Solution:
22
def reverseVowels(self, s: str) -> str:
3-
vowels = ('a', 'e', 'i', 'o', 'u')
3+
vowels = ("a", "e", "i", "o", "u")
44

55
result = list(s)
66

77
left_pointer = 0
88
right_pointer = len(s) - 1
99

1010
while left_pointer < right_pointer:
11-
while left_pointer < right_pointer and result[left_pointer].lower() not in vowels:
11+
while (
12+
left_pointer < right_pointer
13+
and result[left_pointer].lower() not in vowels
14+
):
1215
left_pointer += 1
13-
while left_pointer < right_pointer and result[right_pointer].lower() not in vowels:
16+
while (
17+
left_pointer < right_pointer
18+
and result[right_pointer].lower() not in vowels
19+
):
1420
right_pointer -= 1
1521

16-
result[left_pointer], result[right_pointer] = result[right_pointer], result[left_pointer]
22+
result[left_pointer], result[right_pointer] = (
23+
result[right_pointer],
24+
result[left_pointer],
25+
)
1726
left_pointer += 1
1827
right_pointer -= 1
1928

20-
return ''.join(result)
29+
return "".join(result)

‎tests/test_move_zeroes.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import pytest
2+
from two_pointers.move_zeroes.solution import Solution
3+
4+
5+
@pytest.mark.parametrize(
6+
"nums, expected",
7+
[
8+
([0, 1, 0, 3, 12], [1, 3, 12, 0, 0]),
9+
([0], [0]),
10+
([4, 2, 4, 0, 0, 3, 0, 5, 1, 0], [4, 2, 4, 3, 5, 1, 0, 0, 0, 0]),
11+
],
12+
)
13+
def test_move_zeroes(nums, expected):
14+
Solution().moveZeroes(nums)
15+
assert nums == expected

‎two_pointers/__init__.py

Whitespace-only changes.

‎two_pointers/move_zeroes/__init__.py

Whitespace-only changes.

‎two_pointers/move_zeroes/solution.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def moveZeroes(self, nums: List[int]) -> None:
6+
"""
7+
Do not return anything, modify nums in-place instead.
8+
"""
9+
10+
left = 0
11+
12+
for right in range(len(nums)):
13+
if nums[right] != 0:
14+
nums[left], nums[right] = nums[right], nums[left]
15+
left += 1

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /