Skip to content

Commit 66c36c8

Browse files
committed
Update shortest-palindrome.py
1 parent 4c09e52 commit 66c36c8

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Python/shortest-palindrome.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,26 @@ def shortestPalindrome(self, s):
1919
:type s: str
2020
:rtype: str
2121
"""
22+
def getPrefix(pattern):
23+
prefix = [-1] * len(pattern)
24+
j = -1
25+
for i in xrange(1, len(pattern)):
26+
while j > -1 and pattern[j+1] != pattern[i]:
27+
j = prefix[j]
28+
if pattern[j+1] == pattern[i]:
29+
j += 1
30+
prefix[i] = j
31+
return prefix
32+
2233
if not s:
2334
return s
2435

2536
A = s + s[::-1]
26-
prefix = self.getPrefix(A)
37+
prefix = getPrefix(A)
2738
i = prefix[-1]
2839
while i >= len(s):
2940
i = prefix[i]
3041
return s[i+1:][::-1] + s
31-
32-
def getPrefix(self, pattern):
33-
prefix = [-1] * len(pattern)
34-
j = -1
35-
for i in xrange(1, len(pattern)):
36-
while j > -1 and pattern[j+1] != pattern[i]:
37-
j = prefix[j]
38-
if pattern[j+1] == pattern[i]:
39-
j += 1
40-
prefix[i] = j
41-
return prefix
4242

4343

4444
# Time: O(n)

0 commit comments

Comments
 (0)