-
Notifications
You must be signed in to change notification settings - Fork 106
/
occurrences-after-bigram.py
42 lines (41 loc) · 1.05 KB
/
occurrences-after-bigram.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Time: O(n)
# Space: O(1)
class Solution(object):
def findOcurrences(self, text, first, second):
"""
:type text: str
:type first: str
:type second: str
:rtype: List[str]
"""
result = []
first += ' '
second += ' '
third = []
i, j, k = 0, 0, 0
while k < len(text):
c = text[k]
k += 1
if i != len(first):
if c == first[i]:
i += 1
else:
i = 0
continue
if j != len(second):
if c == second[j]:
j += 1
else:
k -= j+1
i, j = 0, 0
continue
if c != ' ':
third.append(c)
continue
k -= len(second) + len(third) + 1
i, j = 0, 0
result.append("".join(third))
third = []
if third:
result.append("".join(third))
return result