मान लीजिए कि हमारे पास दो तार s और t हैं। हमें यह जांचना है कि क्या हम t दो स्थान को किसी भी दिशा में बाएँ या दाएँ घुमाकर s प्राप्त कर सकते हैं।
इसलिए, यदि इनपुट s ="कोलकाता" t ="tacolka" जैसा है, तो आउटपुट सही होगा क्योंकि हम "कोलकाता" प्राप्त करने के लिए "takolka" को बाईं ओर दो बार घुमा सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि s का आकार t के आकार के समान नहीं है, तो
- झूठी वापसी
- right_rot :=खाली स्ट्रिंग
- बाएं_रोट:=खाली स्ट्रिंग
- l :=t का आकार
- left_rot :=left_rot concatenate t[index l-2 to end] concatenate t[index 0 to l-3]
- right_rot :=right_rot concatenate t[index 2 to end] concatenate t[index 0 to 1]
- सही लौटें जब (s, right_rot के समान है या s, left_rot के समान है) अन्यथा गलत
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(s, t): if (len(s) != len(t)): return False right_rot = "" left_rot = "" l = len(t) left_rot = (left_rot + t[l - 2:] + t[0: l - 2]) right_rot = right_rot + t[2:] + t[0:2] return (s == right_rot or s == left_rot) s = "kolkata" t = "takolka" print(solve(s, t))
इनपुट
"kolkata", "takolka"
आउटपुट
True