Skip to content

Commit 80d9f2b

Browse files
authored
Create minimum-insertion-steps-to-make-a-string-palindrome.py
1 parent 2e60182 commit 80d9f2b

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Time: O(n^2)
2+
# Space: O(n)
3+
4+
class Solution(object):
5+
def minInsertions(self, s):
6+
"""
7+
:type s: str
8+
:rtype: int
9+
"""
10+
def longestCommonSubsequence(text1, text2):
11+
if len(text1) < len(text2):
12+
return self.longestCommonSubsequence(text2, text1)
13+
dp = [[0 for _ in xrange(len(text2)+1)] for _ in xrange(2)]
14+
for i in xrange(1, len(text1)+1):
15+
for j in xrange(1, len(text2)+1):
16+
dp[i%2][j] = dp[(i-1)%2][j-1]+1 if text1[i-1] == text2[j-1] \
17+
else max(dp[(i-1)%2][j], dp[i%2][j-1])
18+
return dp[len(text1)%2][len(text2)]
19+
20+
return len(s)-longestCommonSubsequence(s, s[::-1])

0 commit comments

Comments
 (0)