檢查給定的字串是否可以拆分為 Python 中的四個不同的字串


假設我們有一個字串 s,我們需要檢查是否可以將其拆分為四個子字串,使得每個子字串都不為空且唯一。

因此,如果輸入類似於 s = "helloworld",則輸出將為 True,因為一組可能的子字串是 ["hel", "lo", "wor", "ld"]

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

  • 如果 s 的大小 >= 10,則
    • 返回 True
  • 對於 i 從 1 到 s 的大小 - 1,執行
    • 對於 j 從 i + 1 到 s 的大小 - 1,執行
      • 對於 k 從 j + 1 到 s 的大小 - 1,執行
        • sub1 := s[從索引 0 到 i - 1]
        • sub2 := s[從索引 i 到 j - i - 1]
        • sub3 := s[從索引 j 到 k - j - 1]
        • sub4 := s[從索引 k 到 s 的大小 - k - 1]
        • 如果 sub1、sub2、sub3 和 sub4 全部都不相同,則
          • 返回 True
  • 返回 False

示例

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

 線上演示

def solve(s):
   if len(s) >= 10:
      return True
   for i in range(1, len(s)):
      for j in range(i + 1, len(s)):
         for k in range(j + 1, len(s)):
            sub1 = s[0:i]
            sub2 = s[i:j - i]
            sub3 = s[j: k - j]
            sub4 = s[k: len(s) - k]
            if sub1 != sub2 and sub1 != sub3 and sub1 != sub4 and sub2 != sub3 and sub2 != sub4 and sub3 != sub4:
               return True
   return False
s = "helloworld"
print (solve(s))

輸入

"helloworld"

輸出

True

更新於: 2021年1月18日

270 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告