मान लीजिए हमारे पास दो स्ट्रिंग्स p और q हैं, और एक संख्या r भी है, हमें जांचना है कि क्या p को q में बदला जा सकता है कुछ वर्णों को अधिकतम r बार क्लॉकवाइज शिफ्ट करके। तो, एक उदाहरण के रूप में, "c" को "e" में 2 क्लॉकवाइज शिफ्ट का उपयोग करके बदला जा सकता है।
उदाहरण के लिए, यदि इनपुट है p = "abc", q = "ccc", r = 3, तो आउटपुट होगा True, क्योंकि हम "a" को "c" में 2 क्लॉकवाइज शिफ्ट का उपयोग करके बना सकते हैं और फिर "b" को "c" में 1 क्लॉकवाइज शिफ्ट का उपयोग करके बदल सकते हैं, कुल 3 शिफ्ट के लिए।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- यदि a का आकार, b के आकार के समान नहीं है, तो
- False वापस करें
- यदि k, 0 के समान है और a, b के समान नहीं है, तो
- False वापस करें
- su := 0
- i के लिए 0 से a के आकार तक की रेंज में, करें
- v := b[i] का ASCII - a[i] का ASCII
- यदि v>=0, तो
- su := su + v
- अन्यथा,
- su := su + v + 26
- यदि su > k, तो
- False वापस करें
- True वापस करें
बेहतर समझ के लिए निम्नলিখিত कार्यান্বয়ন দেখুন:
উদাহরণ
class Solution: def solve(self, a, b, k): if len(a) != len(b): return False if k == 0 and a != b: return False su=0 for i in range(len(a)): v = ord(b[i])- ord(a[i]) if v>=0: su+=v else: su+=v+26 if su>k: return False return True ob = Solution() print(ob.solve("abc", "ccc", 3))इनपुट
"abc", "ccc", 3
आउटपुट
True