File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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)
You can’t perform that action at this time.
0 commit comments