Python 中的古代宇航員理論


假設我們有一個字串詞典,該詞典表示古代宇航員詞典的部分詞典序。因此,如果我們有一個字串 s,我們必須檢查它是否根據這個古代宇航員詞典是詞典序排序的字串。

因此,如果輸入類似於詞典 = “bdc”,s = “bbbb h ddd i cccc”,那麼輸出將為 True

為了解決這個問題,我們將遵循以下步驟 -

  • l := astro_dict 的大小

  • 如果 l 與 0 相同,則

    • 返回 True

  • i := 0

  • 對於 s 中的每個字元 c,執行

    • 如果 c 在 astro_dict 中,則

      • 當 i < l 且 astro_dict[i] 不為 c 時,執行

        • i := i + 1

      • 如果 i >= l 或 astro_dict[i] 不為 c,則

        • 返回 False

  • 返回 True

讓我們看看以下實現以獲得更好的理解 -

示例

 現場演示

class Solution:
   def solve(self, astro_dict, s):
      l = len(astro_dict)
      if l == 0:
         return True
      i = 0
      for c in s:
         if c in astro_dict:
            while i < l and astro_dict[i] != c:
               i += 1
            if i >= l or astro_dict[i] != c:
               return False
      return True
ob = Solution()
print(ob.solve("bdc","bbbb h ddd i cccc"))

輸入

"bdc","bbbb h ddd i cccc"

輸出

True

更新時間:02-Sep-2020

141 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.