Giải bài 850 Valid Palindrome II O(N)

Đề bài:

Bài giải:

Code Python

class Solution(object):
    def validPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        def is_palindrome(string, i, j):
            while i < j:
                if string[i] == string[j]:
                    i, j = i + 1, j - 1
                else:
                    return False
            return True
        
        i = 0
        j = len(s) - 1
        while i < j:
            if s[i] == s[j]:
                i, j = i + 1, j - 1
            else:
                return is_palindrome(s, i + 1, j) or is_palindrome(s, i, j - 1)
                
        return True

Nhờ các bạn giải với ngôn ngữ khác

1 Like

Anh đạt nói bài dễ vậy thử xem ai code ngắn nhất

p = str => [...str].map(c => c.toLowerCase()).filter(c => c.match(/[a-z0-9]/))
q = a => a.slice(0, (a.length / 2) | 0).join`` === a.slice((a.length / 2) | 0 + a.length % 2, a.length).reverse().join``)

P/s: Lần sau a bỏ luôn link đề cho mọi người đỡ click play video luôn được không anh :thinking:

5 Likes

Đúng rồi, vậy mà anh không nghĩ ra.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?