मान लीजिए कि हमारे पास एक स्ट्रिंग है, हमें यह जांचना है कि स्ट्रिंग ए ^ एनबी ^ एन पैटर्न का पालन कर रही है या नहीं। यह वास्तव में एक स्ट्रिंग है जब n =3, स्ट्रिंग "aaabbb" होगी।
इसलिए, यदि इनपुट s ="aaaaabbbbb" जैसा है, तो आउटपुट सही होगा क्योंकि यह a^5b^5 का अनुसरण करता है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- आकार :=s का आकार
- मैं के लिए 0 से आकार -1 की सीमा में, करो
- यदि s[i] 'a' के समान नहीं है, तो
- लूप से बाहर आएं
- यदि s[i] 'a' के समान नहीं है, तो
- यदि i*2 आकार के समान नहीं है, तो
- झूठी वापसी
- जे के लिए i से आकार -1 तक की श्रेणी में, करें
- यदि s[j] 'b' के समान नहीं है, तो
- झूठी वापसी
- यदि s[j] 'b' के समान नहीं है, तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(s): size = len(s) for i in range(size): if s[i] != 'a': break if i * 2 != size: return False for j in range(i, size): if s[j] != 'b': return False return True s = "aaaaabbbbb" print(solve(s))
इनपुट
"aaaaabbbbb"
आउटपुट
True