1312. Minimum Insertion Steps to Make a String Palindrome - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def minInsertions(self, s: str) -> int:
        a = s
        b = s[::-1]
        
        t = []
        
        for i in range(len(a) + 1):
            l = []
            for j in range(len(b) + 1):
                l.append(0)
            t.append(l)
        
        for i in range(1, len(a) +1, 1):
            for j in range(1, len(b) + 1, 1):
                if a[i-1] == b[j-1]:
                    t[i][j] = 1 + t[i-1][j-1]
                else:
                    t[i][j] = max(t[i-1][j], t[i][j-1])
        
        return len(a) - t[len(a)][len(b)]
    
        


Comments

Submit
0 Comments
More Questions

892A - Greed
32A - Reconnaissance
1236D - Alice and the Doll
1207B - Square Filling
1676D - X-Sum
1679A - AvtoBus
1549A - Gregor and Cryptography
918C - The Monster
4B - Before an Exam
545B - Equidistant String
1244C - The Football Season
1696B - NIT Destroys the Universe
1674A - Number Transformation
1244E - Minimizing Difference
1688A - Cirno's Perfect Bitmasks Classroom
219A - k-String
952A - Quirky Quantifiers
451B - Sort the Array
1505H - L BREAK into program
171E - MYSTERIOUS LANGUAGE
630D - Hexagons
1690D - Black and White Stripe
1688D - The Enchanted Forest
1674C - Infinite Replacement
712A - Memory and Crow
1676C - Most Similar Words
1681A - Game with Cards
151C - Win or Freeze
1585A - Life of a Flower
1662A - Organizing SWERC