如果我有两个字符串,如何找到字符串停止匹配的索引? 'abcdefghijk'和假字母'abcdxyz',我知道它们在索引4处停止匹配,但是如何在函数设置中输出?
答案 0 :(得分:0)
使用enumerate()
函数查找索引,第二个字符串中的字母与第一个字符串中的当前字母不匹配 -
def matcher(str1, str2):
for idx, item in enumerate(str1):
if item != str2[idx]:
return idx
return -1 # if no differing letter in second string
print(matcher('abcdefghijk', 'abcdxyz')) # 4
答案 1 :(得分:0)
使用comparisons
sliced
strings
的一些简单function
:
我们可以创建一个简单的slicing
,使strings
保持string
直到它到达第一个def match(s1, s2):
for i in range(len(s1)+1):
if s1[:i] != s2[:i]:
return i - 1
return -1
的末尾并进行比较:
>>> match('abcdefghijk', 'abcdxyz')
4
>>> match('124', '123')
2
>>> match('123456', '123abc')
3
>>> match("abcdef", "abcdef")
-1
和一些测试:
let rec powerset = function
| [] -> [[]]
| x::xs -> List.collect (fun subset -> [subset; x::subset]) (powerset xs)