Skip to content

Commit aea24c9

Browse files
committed
Add solution for reverse vowels
1 parent afe89e3 commit aea24c9

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

array/reverse-vowels/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 605. Can Place Flowers
2+
3+
## Description
4+
See https://leetcode.com/problems/can-place-flowers/description/
5+
6+
## Problem
7+
You have a long flowerbed in which some of the plots are planted, and some are not. However, flowers cannot be planted in adjacent plots.
8+
9+
Given an integer array `flowerbed` containing `0`'s and `1`'s, where `0` means empty and `1` means not empty, and an integer `n`, return `true` if `n` new flowers can be planted in the `flowerbed` without violating the no-adjacent-flowers rule and `false` otherwise.
10+
11+
## Example 1
12+
13+
```
14+
Input: flowerbed = [1,0,0,0,1], n = 1
15+
Output: true
16+
```
17+
18+
## Example 2
19+
20+
```
21+
Input: flowerbed = [1,0,0,0,1], n = 2
22+
Output: false
23+
```
24+
25+
## Constraints
26+
27+
```
28+
1 <= flowerbed.length <= 2 * 104
29+
flowerbed[i] is 0 or 1.
30+
There are no two adjacent flowers in flowerbed.
31+
0 <= n <= flowerbed.length
32+
```

array/reverse-vowels/reversevowels.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def reverse_vowels(s: str) -> str:
2+
s = list(s)
3+
left = 0
4+
right = len(s) - 1
5+
vowels = set("AEIOUaeiou")
6+
while left < right:
7+
while left < right and s[left] not in vowels:
8+
left += 1
9+
while left < right and s[right] not in vowels:
10+
right -= 1
11+
s[left], s[right] = s[right], s[left]
12+
left += 1
13+
right -= 1
14+
s = "".join(s)
15+
return s
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from reversevowels import reverse_vowels
2+
3+
def test_example_1():
4+
s = "hello"
5+
assert reverse_vowels(s) == "holle"
6+
7+
def test_example_2():
8+
s = "leetcode"
9+
assert reverse_vowels(s) == "leotcede"
10+
11+
def test_example_3():
12+
s = "aA"
13+
assert reverse_vowels(s) == "Aa"
14+
15+
def test_example_4():
16+
s = "aeiou"
17+
assert reverse_vowels(s) == "uoiea"
18+
19+
def test_example_5():
20+
s = "bcdfg"
21+
assert reverse_vowels(s) == "bcdfg"

0 commit comments

Comments
 (0)