Skip to content

Commit 853a3f4

Browse files
committed
feat(leetcode/medium/251-flatten-2d-vector.py)·
1 parent 0cc780d commit 853a3f4

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"""
2+
251-flatten-2d-vector
3+
leetcode/medium/251. Flatten 2D Vector
4+
Difficulty: medium
5+
URL: https://leetcode.com/problems/flatten-2d-vector/
6+
"""
7+
8+
from typing import List
9+
10+
11+
class Vector2D:
12+
def flattening(self, _list, _result):
13+
for item in _list:
14+
if not isinstance(item, list):
15+
_result.append(item)
16+
else:
17+
self.flattening(item, _result)
18+
19+
def __init__(self, vec: List[List[int]]):
20+
self._list = []
21+
self.flattening(vec, self._list)
22+
23+
def next(self) -> int:
24+
return self._list.pop(0)
25+
26+
def hasNext(self) -> bool:
27+
return len(self._list) > 0
28+
29+
30+
def test():
31+
vector2D = Vector2D([[1, 2], [3], [4]])
32+
assert vector2D.next() == 1
33+
assert vector2D.next() == 2
34+
assert vector2D.next() == 3
35+
assert vector2D.hasNext() == True
36+
assert vector2D.hasNext() == True
37+
assert vector2D.next() == 4
38+
assert vector2D.hasNext() == False

0 commit comments

Comments
 (0)