在 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
- 如果在 s 的子字串中從索引 j 到 s 的大小(透過跳過 k-j 個字元)包含 "programmingquestion",則
- 如果 k > j,則
- 針對 r 中的每個 k,執行
- 返回 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP