मान लीजिए कि हमारे पास एक स्ट्रिंग है, हमें यह जांचना होगा कि क्या हम इसे चार उप-स्ट्रिंग में विभाजित कर सकते हैं, जैसे कि उनमें से प्रत्येक गैर-रिक्त और अद्वितीय है।
इसलिए, यदि इनपुट s ="helloworld" जैसा है, तो आउटपुट सही होगा क्योंकि उप-स्ट्रिंग के संभावित सेट में से एक ["हेल", "लो", "वॉर", "एलडी"]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि s का आकार>=10, तो
- सही लौटें
- i के लिए 1 से लेकर s-1 के आकार तक के लिए
- j श्रेणी में i + 1 से s -1 के आकार के लिए, do
- k के लिए j + 1 से लेकर s-1 के आकार तक, do
- sub1 :=s[सूचकांक 0 से i - 1 तक]
- sub2 :=s[इंडेक्स i से j - i - 1 तक]
- sub3 :=s[सूचकांक j से k - j - 1 तक]
- sub4 :=s[इंडेक्स k से s - k - 1 के आकार तक]
- अगर सब1 सब2 सब3 और सब4 अलग हैं, तो
- सही लौटें
- k के लिए j + 1 से लेकर s-1 के आकार तक, do
- j श्रेणी में i + 1 से s -1 के आकार के लिए, do
- झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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