给定 2 个字符串
例如:"Hello World"
和"World Is Awesome"
这并不完全是工会。我需要提取一个在第一个字符串的结尾和第二个字符串的开头常见的子字符串。
在上面的例子中,它将是"World"
,因为第一个字符串以这个字符列表结尾,第二个字符串以它开头。
最有效的方法是什么?可以是任何语言,但我主要对 python 和 c# 感到好奇。
这是我的解决方案
def union_chars(head, tail):
match = None
for i in range(len(head)):
if tail.startswith(head[-i:]):
match = head[-i:]
return match
以下是使用for
循环和索引的方法:
def union_chars(head, tail):
for i in range(len(head)):
if tail.startswith(head[i:]):
return head[i:]
print(union_chars("Hello World", "World Is Awesome"))
输出:
World
解释:
首先,循环访问head
字符串的每个索引, 并检查tail
字符串是否以head
字符串的索引开头到head
字符串的末尾。模板
这是一个基于Ann Zen答案的简化解决方案。我认为它更有效率,因为它不需要多次len()
。而且更短
def union_chars(head, tail):
match = None
for i in range(len(head)):
if tail.startswith(head[-i:]):
match = head[-i:]
return match