用于检查最终字符串是否可以在Python中使用其他两个字符串组成的程序
假设我们有两个字符串s,t和另一个字符串r,我们必须检查是否有通过按s和t的顺序合并字符来获取r的方法。
因此,如果输入像s=“xyz”t=“mno”r=“xymnoz”,则输出将为True,因为xymnoz可以通过交织xyz和mno来形成。
为了解决这个问题,我们将遵循以下步骤-
定义一个功能solve()。这将花费s,t,r
如果s,t和r为空,则
如果r为空,则
返回False
返回True
如果s为空,则
当t与r相同时返回true,否则返回false
如果不是t不为零,则
returns与r相同
如果s[0]与r[0]相同,则
返回True
如果solve(s[从索引1到结束],t,r[从索引1到结束])为真,则
如果t[0]与r[0]相同,则
返回True
如果solve(s,t[从索引1到结束],r[从索引1到结束])为真,则
返回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