diff --git a/python/344-Reverse-String.py b/python/344-Reverse-String.py new file mode 100644 index 000000000..b46d567a1 --- /dev/null +++ b/python/344-Reverse-String.py @@ -0,0 +1,11 @@ +class Solution: + def reverseString(self, s: List[str]) -> None: + """ + Do not return anything, modify s in-place instead. + """ + l = 0 + r = len(s) - 1 + while l <= r: + s[l],s[r] = s[r],s[l] + l += 1 + r -= 1 diff --git a/python/680-Valid-Palindrome-II.py b/python/680-Valid-Palindrome-II.py new file mode 100644 index 000000000..368205574 --- /dev/null +++ b/python/680-Valid-Palindrome-II.py @@ -0,0 +1,21 @@ +class Solution: + def validPalindrome(self, s: str) -> bool: + i, j = 0, len(s) - 1 + + while i < j: + if s[i] == s[j]: + i += 1 + j -= 1 + else: + return self.validPalindromeUtil(s, i + 1, j) or self.validPalindromeUtil(s, i, j - 1) + return True + + def validPalindromeUtil(self, s, i, j): + while i < j: + if s[i] == s[j]: + i += 1 + j -= 1 + else: + return False + + return True