在 Python 字串中查詢程式設計問題


假設我們有一個小寫字串 s,我們要檢查是否有可能選取 s 中的一些字元子序列,使得 - 1. 任何兩個字元連續索引的差都相同 2. 這些字元構成字串 "programmingquestion"

所以,如果輸入類似於 "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn",則輸出將為 True

要解決這個問題,我們將按照以下步驟進行操作 -

  • p:包含出現 p 的索引的陣列
  • r:包含出現 r 的索引的陣列
  • 針對 p 中的每個 j,執行
    • 針對 r 中的每個 k,執行
      • 如果 k > j,則
        • 如果在 s 的子字串中從索引 j 到 s 的大小(透過跳過 k-j 個字元)包含 "programmingquestion",則
          • 返回 True
  • 返回 False

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

示例

 線上演示

class Solution:
   def solve(self, s):
      p = [i for i, c in enumerate(s) if c == "p"]
      r = [i for i, c in enumerate(s) if c == "r"]
      for j in p:
         for k in r:
            if k > j:
               if "programmingquestion" in s[j:len(s):k-j]:
                  return True
      return False
ob = Solution()
s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
print(ob.solve(s))

輸入

"pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"

輸出

True

更新於: 2020-09-22

135 次瀏覽

助力 事業

完成課程後獲得認證

開始
廣告
© . All rights reserved.