मान लीजिए हमारे पास दो स्ट्रिंग्स s, t, और एक अन्य स्ट्रिंग r है हमें जांचना है कि क्या s और t से क्रम में वर्णों को मर्ज करके r प्राप्त करने का कोई तरीका है।
इसलिए, यदि इनपुट s = "xyz" t = "mno" r = "xymnoz" जैसा है, तो आउटपुट True होगा, क्योंकि xymnoz को xyz और mno को इंटरलीव करके बनाया जा सकता है।
हल करने के चरण
solve() फ़ंक्शन परिभाषित करें। यह s, t, r लेगा
यदि s, t और r खाली हैं, तो True लौटाएं
यदि r खाली है, तो False लौटाएं
यदि s खाली है, तो t == r हो तो true लौटाएं अन्यथा false
यदि t शून्येतर नहीं है, तो s == r लौटाएं
यदि s[0], r[0] के समान है, तो
यदि solve(s[1:], t, r[1:]) true है, तो True लौटाएं
यदि t[0], r[0] के समान है, तो
यदि solve(s, t[1:], r[1:]) true है, तो True लौटाएं
False लौटाएं
उदाहरण
class Solution:
def solve(self, s, t, r):
if not s and not t and not r:
return True
if not r:
return False
if not s:
return t == r
if not t:
return s == r
if s[0] == r[0]:
if self.solve(s[1:], t, r[1:]):
return True
if t[0] == r[0]:
if self.solve(s, t[1:], r[1:]):
return True
return False
ob = Solution()
s = "xyz"
t = "mno"
r = "xymnoz"
print(ob.solve(s, t, r))
इनपुट
"xyz", "mno", "xymnoz"
आउटपुट
True