Skip to content

Commit cb65162

Browse files
authored
Create palindrome-removal.py
1 parent ba58f3b commit cb65162

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Python/palindrome-removal.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(n^3)
2+
# Space: O(n^2)
3+
4+
class Solution(object):
5+
def minimumMoves(self, arr):
6+
"""
7+
:type arr: List[int]
8+
:rtype: int
9+
"""
10+
dp = [[0 for _ in xrange(len(arr)+1)] for _ in xrange(len(arr)+1)]
11+
for l in xrange(1, len(arr)+1):
12+
for i in xrange(len(arr)-l+1):
13+
j = i+l-1
14+
if l == 1:
15+
dp[i][j] = 1
16+
else:
17+
dp[i][j] = 1+dp[i+1][j]
18+
if arr[i] == arr[i+1]:
19+
dp[i][j] = min(dp[i][j], 1+dp[i+2][j])
20+
for k in xrange(i+2, j+1):
21+
if arr[i] == arr[k]:
22+
dp[i][j] = min(dp[i][j], dp[i+1][k-1] + dp[k+1][j])
23+
return dp[0][len(arr)-1]

0 commit comments

Comments
 (0)