使用 Python 檢查是否可以使用給定的單片語成一個雙字元字串
假設我們有一個長度為 2 的字串 s,還有一個單詞列表 w,其中所有單詞的長度都為 2。我們需要檢查是否可以連線 w 中的單詞,並且連線後的字串是否包含 s 作為子字串。
所以,如果輸入像 s = "no",w = ["ol", "on", "ni", "to"],那麼輸出將是 True,因為我們可以連線像 "onol" 這樣的字串,其中包含 "no"
為了解決這個問題,我們將遵循以下步驟:
- n := w 中單詞的數量
- char_0 := False,char_1 := False
- 對於 i 從 0 到 n - 1,執行:
- 如果 w[i] 與 s 相同,則:
- 返回 True
- 如果 s[0] 與 w[i, 1] 相同,則:
- char_0 := True
- 如果 s[1] 與 w[i, 0] 相同,則:
- char_1 := True
- 如果 char_0 和 char_1 都為真,則:
- 返回 True
- 如果 w[i] 與 s 相同,則:
- 返回 False
讓我們看看下面的實現,以便更好地理解:
示例
def solve(s, w): n = len(w) char_0 = False char_1 = False for i in range(n): if w[i] == s: return True if s[0] == w[i][1]: char_0 = True if s[1] == w[i][0]: char_1 = True if char_0 and char_1: return True return False s = "no" w = ["ol", "on", "ni", "to"] print(solve(s, w))
輸入
"no", ["ol", "on", "ni", "to"]
輸出
True
廣告