項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Leetcode】python – [680] Valid Palindrome II 個人解法筆記

題目出處

680. Valid Palindrome II

難度

easy

個人範例程式碼 – two pointers

class Solution:
    def validPalindrome(self, s: str) -> bool:
        start, end = 0, len(s) - 1 
        while(start < end):
            if(s[start] == s[end]): # same
                start += 1
                end -= 1
            else: # not same, try cut one
                return self.is_palindrome(s, start+1, end) or self.is_palindrome(s, start, end-1) 

        return True

    def is_palindrome(self, s, start, end):
        while(start < end):
            if (s[start] == s[end]):
                start += 1
                end -= 1
            else:
                return False
        return True

算法說明

這題可以用比較聰明的作法,
我們既然都知道我們會需要「多次判斷」是否是「回文」,

我們可以先寫好判斷回文的 function 「is_palindrome」,
讓我們的主程式可以多次的去 call。

而刪除的概念可以理解為,如果我們找到兩端各一個「非相同的文字」,
我們就嘗試「左邊」與「右邊」都去掉嘗試判斷看看,
因為只要判斷一次刪除,因此如果回傳都沒有解,即為最終無解的情況。

最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解

input handling

處理沒有 input 的狀況,內建 start < end 條件可以處理

Boundary conditions

start < end,交錯或等於就結束

Reference

⭐ Leetcode 解題紀錄 ⭐題型資料結構Python SolutionC++ SolutionNote
⭐BFS 相關題型 ⭐
104Maximum Depth of Binary TreeBFS (分層)Python
94Binary Tree Inorder TraversalBFS (分層)TreePython 內含 處理 Tree 樹問題的重點
102Binary Tree Level Order TraversalBFS (分層)TreePython
103Binary Tree Zigzag Level Order TraversalBFS (分層)TreePython
107Binary Tree Level Order Traversal IIBFS (分層)TreePython
133Clone GraphBFS (分層)GraphPython Graph 的基本操作 #重要題型
127Word LadderBFS (分層), DFSGraphPython
[Lint] 127Topological SortingBFS (拓撲)Python
內有 indegree, outdegree 介紹 #重要題型
207Course ScheduleBFS (拓樸)GraphPython
210Course Schedule IIBFS (拓樸)GraphPython
[Lint] 892Alien DictionaryBFS (拓樸)GraphPython
[Lint] 431Connected Component in Undirected GraphBFS (連通塊)GraphPython 內含 BFS 模板 #重要題型
1091Shortest Path in Binary MatrixBFS (最短路徑)MatrixPython
⭐ Binary Serach 相關題型 ⭐
33Search in Rotated Sorted ArrayBinary SerachArrayPython #重要題型
34Find First and Last Position of Element in Sorted ArrayBinary Serach