【发布时间】:2021-06-16 18:25:29
【问题描述】:
我在检查交织字符串时遇到问题。所以,我有3个字符串,我需要检查是否可以将前两个字符串交织形成第三个字符串。
为了简化,交织字符串意味着通过交替它们的字母来合并它们而没有任何特定的模式。
例如:"abc" 和 "123" 是两个字符串,可能的交织可以是 "abc123" 或 "a1b2c3" 或 "ab1c23" 等混合它们,没有任何模式,但遵循顺序。
另一个例子,假的情况:
str1 = "aabcc",
str2 = "dbbca",
str3 = "aadbbbaccc" # This is false case, where str3 is not interweaving from str1 and str2
我尝试过的:
我尝试了以下对我有用的解决方案。返回True 如果字符串c 是字符串a 和b 的交织,否则返回False
def weavingstring(a,b,c):
for i in c:
if len(a)>0:
if i == a[0]:
a=a[1:]
if len(b)>0:
if i == b[0]:
b=b[1:]
if len(a) > 0 or len(b) > 0:
return False
return True
print(weavingstring("abc", "def", "abcdef")) # True here
print(weavingstring("aabcc", "dbbca", "aadbbbaccc")) # False here
我想要什么
我有正常的解决方案,我想知道使用list comprehension、map、filter、reduce 或lambda functions 等是否有任何pythonic 方式。
【问题讨论】:
标签: python python-3.x lambda mapreduce list-comprehension