Skip to content

Commit 18aa78e

Browse files
author
Hamid Gasmi
committed
#158 test cases, expected and actual results are added
1 parent f739651 commit 18aa78e

File tree

21 files changed

+33
-15
lines changed

21 files changed

+33
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
1-
# python3
21
import sys
32
import suffix_tree
43
from collections import namedtuple
54
import threading
65

76
# DFS traversal on the tree
8-
def dfs_non_shared_substring(st, node):
7+
def dfs_non_shared_substring(stree, node):
98

10-
if len(st.nodes[node]) == 0:
9+
if len(stree.nodes[node]) == 0:
1110
return (-1, 0, False)
1211

13-
text_len = (len(suffix_tree.text) - 2) // 2
12+
text_len = (len(stree.text) - 2) // 2
1413
shortest_substr_end = 0
1514
shortest_substr_len = 2001
1615
right_part = False
17-
for child in st.nodes[node]:
16+
for child in stree.nodes[node]:
1817

19-
if st.nodes[node][child].start >= text_len:
20-
right_part = True if st.nodes[node][child].start > text_len else right_part
18+
if stree.nodes[node][child].start >= text_len:
19+
right_part = True if stree.nodes[node][child].start > text_len else right_part
2120
continue
2221

23-
(substr_end, substr_len, subright_part) = dfs_non_shared_substring(suffix_tree, child)
22+
(substr_end, substr_len, subright_part) = dfs_non_shared_substring(stree, child)
2423
right_part = True if subright_part else right_part
2524

26-
candidate_len = 1 if substr_len == 0 else st.nodes[node][child].len + substr_len
27-
candidate_end = st.nodes[node][child].start if substr_end == -1 else substr_end
25+
candidate_len = 1 if substr_len == 0 else stree.nodes[node][child].len + substr_len
26+
candidate_end = stree.nodes[node][child].start if substr_end == -1 else substr_end
2827

2928
if shortest_substr_len > candidate_len:
3029
shortest_substr_end = candidate_end
@@ -39,10 +38,10 @@ def dfs_non_shared_substring(st, node):
3938
def solve (p, q):
4039
pq_text = p + "#" + q + "$"
4140

42-
st = suffix_tree.Suffix_Tree(pq_text)
43-
(shortest_substr_end, shortest_substr_len, right_part) = dfs_non_shared_substring(st, 0)
41+
stree = suffix_tree.Suffix_Tree(pq_text)
42+
(shortest_substr_end, shortest_substr_len, right_part) = dfs_non_shared_substring(stree, 0)
4443

45-
return st.text[ shortest_substr_end - shortest_substr_len + 1 : shortest_substr_end + 1 ]
44+
return stree.text[ shortest_substr_end - shortest_substr_len + 1 : shortest_substr_end + 1 ]
4645

4746
def main():
4847
p = sys.stdin.readline ().strip ()
@@ -55,5 +54,6 @@ def main():
5554

5655
sys.setrecursionlimit(10**7)
5756
threading.stack_size(2**30)
57+
5858
threading.Thread(target=main()).start()
5959

Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
AA
1+
CC
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CC
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ATG
1+
GAT
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
GAT
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
C
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
C
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AAC
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AAC
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AA

0 commit comments

Comments
 (0)