小蛇走迷宮

更新 發佈閱讀 4 分鐘
class Solution:

    def isMatch(self, s: str, p: str) -> bool:

        # i = s 的指標(小蛇目前走到哪)

        # j = p 的指標(迷宮目前在哪個門)

        i = 0

        j = 0



        # star  = 記錄最近一次看到的 '*' 在迷宮的位置(像放一個回到大洞的地標)

        # match = 小蛇當時的位置(之後如果卡住,回到這裡讓 * 多吃一格)

        star = -1

        match = 0



        # 只要小蛇還沒走完,就一直走

        while i < len(s):



            # 情況 1:字母一樣 或 迷宮門是 '?'

            # → 正常通過一格

            if j < len(p) and (p[j] == s[i] or p[j] == '?'):

                i += 1  # 小蛇往前一步

                j += 1  # 迷宮也往前一步



            # 情況 2:遇到 '*' 巨大魔法洞

            # → 可以先不決定吞多少,先記下位置

            elif j < len(p) and p[j] == '*':

                star = j        # 記下 * 在迷宮哪裡

                match = i       # 記下小蛇當時位置

                j += 1          # 先把迷宮往前走,假裝 *0



            # 情況 3:現在撞牆了!但之前有看過 '*' 可以救場

            # → 回頭到 * 那裡,讓 * 多吃一個字

            elif star != -1:

                j = star + 1    # 迷宮退回 * 的下一格(因為 * 本身不用再看了)

                match += 1      # 多吃一個字母

                i = match       # 小蛇跳到被吃掉後的位置



            # 情況 4:啥都不是 → 無法匹配

            else:

                return False



        # 小蛇走完了,但迷宮後面可能還有東西

        # 只有 '*' 可以留著(因為 * 可以吞空字串)

        while j < len(p) and p[j] == '*':

            j += 1



        # 如果迷宮也剛好走完 → 完全匹配

        return j == len(p)
留言
avatar-img
留言分享你的想法!
avatar-img
于正龍(Ricky)的沙龍
54會員
86內容數
人工智能工作經驗跟研究
2025/11/30
Sudoku 是經典的 Constraint Problem(約束問題)。 題目要求你把空格 . 填入 1~9,使得: 每一列(row)數字 1~9 各出現一次 每一行(column)數字 1~9 各出現一次 每一個 3×3 box(九宮格)數字 1~9 各出現一次 這種問題最典型
2025/11/30
Sudoku 是經典的 Constraint Problem(約束問題)。 題目要求你把空格 . 填入 1~9,使得: 每一列(row)數字 1~9 各出現一次 每一行(column)數字 1~9 各出現一次 每一個 3×3 box(九宮格)數字 1~9 各出現一次 這種問題最典型
2025/11/29
問題拆解 給定: 字串 s 單詞陣列 words,每個單詞長度相同 我們要找到所有的起始索引,使得從該位置開始的子字串, 正好是 words 裡所有單詞 任意排列 的拼接。 關鍵點: 單詞長度固定,假設為 word_len words 的總長度是 total_len = word_l
Thumbnail
2025/11/29
問題拆解 給定: 字串 s 單詞陣列 words,每個單詞長度相同 我們要找到所有的起始索引,使得從該位置開始的子字串, 正好是 words 裡所有單詞 任意排列 的拼接。 關鍵點: 單詞長度固定,假設為 word_len words 的總長度是 total_len = word_l
Thumbnail
看更多
你可能也想看
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
圖文書「走過,才知你的存在平凡又特別:大小貓的相遇旅程」(The Cat Who Taught Zen) 的心得。主角貓貓踏上尋找智慧之旅,過程中遇到不同動物,牠們各自的問題映照出人們生活中常見的煩惱:焦慮、比較、慾望、厭倦等。最後,貓貓領悟到生命本就圓滿,平凡與特別並存,小事的堆疊才是生命的全貌。
Thumbnail
圖文書「走過,才知你的存在平凡又特別:大小貓的相遇旅程」(The Cat Who Taught Zen) 的心得。主角貓貓踏上尋找智慧之旅,過程中遇到不同動物,牠們各自的問題映照出人們生活中常見的煩惱:焦慮、比較、慾望、厭倦等。最後,貓貓領悟到生命本就圓滿,平凡與特別並存,小事的堆疊才是生命的全貌。
Thumbnail
2023/7/7 小暑 : 二十四節氣第十一個節氣;夏天的第五個節氣。 ☀️太陽到達黃經105°時開始 ✨意涵: 大暑前哨,氣溫持續攀升從微熱到大熱 🌥天氣: 熱浪來襲,颱風旺季即將到來,對流旺盛常有午後雷陣雨 說到小暑這兩句諺語完美體現了當下天氣 ▌小暑過,一日熱三分 ▌小暑大暑,上蒸下煮
Thumbnail
2023/7/7 小暑 : 二十四節氣第十一個節氣;夏天的第五個節氣。 ☀️太陽到達黃經105°時開始 ✨意涵: 大暑前哨,氣溫持續攀升從微熱到大熱 🌥天氣: 熱浪來襲,颱風旺季即將到來,對流旺盛常有午後雷陣雨 說到小暑這兩句諺語完美體現了當下天氣 ▌小暑過,一日熱三分 ▌小暑大暑,上蒸下煮
Thumbnail
前一天的馬軍山累到大家噓累累,隔天決定改成埔里走小山頭摸基點行程。水頭山居然有個大正七年的基石耶(開心)!白葉山入口絕佳的山景展望,桃米坑山位於日月大道院後山五星級步道。為了兩個一等點,跑進廢墟裡的戲台下挖土(埔里),或停在路邊的水溝凹洞找(公田溝),這樣基線北和基線南剛好可連成一條線。
Thumbnail
前一天的馬軍山累到大家噓累累,隔天決定改成埔里走小山頭摸基點行程。水頭山居然有個大正七年的基石耶(開心)!白葉山入口絕佳的山景展望,桃米坑山位於日月大道院後山五星級步道。為了兩個一等點,跑進廢墟裡的戲台下挖土(埔里),或停在路邊的水溝凹洞找(公田溝),這樣基線北和基線南剛好可連成一條線。
Thumbnail
她播放那段母猫的叫声,在我听来没什么差别,都像婴儿的哭声。在空旷又陌生的地下车库里循环,细想非常恐怖。
Thumbnail
她播放那段母猫的叫声,在我听来没什么差别,都像婴儿的哭声。在空旷又陌生的地下车库里循环,细想非常恐怖。
Thumbnail
Carey Mulligan、Keira Knightley 和 Andrew Garfield,內斂演技撐起整部電影的深度,複雜情感被憂鬱深深籠罩,流動於 Carey Mulligan 溫柔回憶中,三人互動如此緊密,但處處流露顧忌之情,竟無語凝噎的氛圍瀰漫在渴望愛與陪伴的微弱希望之光,別讓我走。
Thumbnail
Carey Mulligan、Keira Knightley 和 Andrew Garfield,內斂演技撐起整部電影的深度,複雜情感被憂鬱深深籠罩,流動於 Carey Mulligan 溫柔回憶中,三人互動如此緊密,但處處流露顧忌之情,竟無語凝噎的氛圍瀰漫在渴望愛與陪伴的微弱希望之光,別讓我走。
Thumbnail
​ 隨著食品科技的進步與提升,市面上醬料千百款。但是這一款醬料在微辣中有又帶有微甜的味道,你一定都吃過這款就是萬家香食品公司的海山醬,此款醬料今年已經有七十五年歷史了陪伴大家走過七十五個寒暑 ,記憶中不變的好味道。堪稱是阿公級的醬料始祖。 萬家香海山醬相關資訊:: ​ 台北市中山區德惠街9號5樓之六
Thumbnail
​ 隨著食品科技的進步與提升,市面上醬料千百款。但是這一款醬料在微辣中有又帶有微甜的味道,你一定都吃過這款就是萬家香食品公司的海山醬,此款醬料今年已經有七十五年歷史了陪伴大家走過七十五個寒暑 ,記憶中不變的好味道。堪稱是阿公級的醬料始祖。 萬家香海山醬相關資訊:: ​ 台北市中山區德惠街9號5樓之六
Thumbnail
董耀會花508天從山海關走到嘉峪關,成為走完長城的第一人;楊東在五年間去長城兩百多趟,拍了30萬張照片,成了為長城留下最精彩影像的第一人。他們都是「化零為整」「匯多為一」的實踐者,因「整體大於部分之總和」,而有了不一樣的人生。其實一般人如能利用零星的時間去做單一的一件事,積少成多,也能帶來可見成果。
Thumbnail
董耀會花508天從山海關走到嘉峪關,成為走完長城的第一人;楊東在五年間去長城兩百多趟,拍了30萬張照片,成了為長城留下最精彩影像的第一人。他們都是「化零為整」「匯多為一」的實踐者,因「整體大於部分之總和」,而有了不一樣的人生。其實一般人如能利用零星的時間去做單一的一件事,積少成多,也能帶來可見成果。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News