File tree Expand file tree Collapse file tree 1 file changed +12
-12
lines changed Expand file tree Collapse file tree 1 file changed +12
-12
lines changed Original file line number Diff line number Diff line change @@ -19,26 +19,26 @@ def shortestPalindrome(self, s):
19
19
:type s: str
20
20
:rtype: str
21
21
"""
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
+
22
33
if not s :
23
34
return s
24
35
25
36
A = s + s [::- 1 ]
26
- prefix = self . getPrefix (A )
37
+ prefix = getPrefix (A )
27
38
i = prefix [- 1 ]
28
39
while i >= len (s ):
29
40
i = prefix [i ]
30
41
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
42
42
43
43
44
44
# Time: O(n)
You can’t perform that action at this time.
0 commit comments