Python 在相同索引下查找两个不同字符串中的匹配字母数
我很难完成python代码 重叠(“”,'hello')→ 0 当字符串的长度匹配时,我成功地获取了数字,但是如果其中一个字符串的长度小于另一个字符串的长度。我总是把索引弄得超出范围。有人能帮我完成这个吗Python 在相同索引下查找两个不同字符串中的匹配字母数,python,Python,我很难完成python代码 重叠(“”,'hello')→ 0 当字符串的长度匹配时,我成功地获取了数字,但是如果其中一个字符串的长度小于另一个字符串的长度。我总是把索引弄得超出范围。有人能帮我完成这个吗 def overlap(string1,string2): count = 0 for i in range(len(string1)): for j in range(len(string2)): if string1[i] == st
def overlap(string1,string2):
count = 0
for i in range(len(string1)):
for j in range(len(string2)):
if string1[i] == string2[j]:
count = count + 1
i+=1
else:
i+=1
return count
当通过函数调用运行此函数时。如果两个字符串相等,它会给出正确的数字,但如果其中一个更小或更长,则其索引超出范围。
感谢为迭代
min(len(string1),len(string2))
的循环创建一个,当一个字符串小于另一个字符串时,您可以避免问题,请参见下面的示例:
def overlap(string1,string2):
count = 0
for i in range(min(len(string1), len(string2))):
if string1[i] == string2[i]:
count = count + 1
return count
print overlap('summer','winter') #2
print overlap('abcb','dbeb') #2
print overlap('summer','sum') #3
print overlap('','winter') #0
祝你好运 为迭代min(len(string1)、len(string2))
的
循环创建一个,当一个字符串小于另一个字符串时,可以避免问题,请参见下面的示例:
def overlap(string1,string2):
count = 0
for i in range(min(len(string1), len(string2))):
if string1[i] == string2[i]:
count = count + 1
return count
print overlap('summer','winter') #2
print overlap('abcb','dbeb') #2
print overlap('summer','sum') #3
print overlap('','winter') #0
祝你好运 替换嵌套循环,仅对较小的长度重复
def overlap(string1, string2):
count=0;
len1= len(string1)
len2= len(string2)
smallLen= len1
if len2<len1:
smallLen= len2
for i in range(smallLen):
if string1[i]== string2[i]:
count+= 1
return count
def重叠(string1、string2):
计数=0;
len1=len(string1)
len2=len(string2)
smallLen=len1
如果len2替换嵌套循环,仅对较小长度重复
def overlap(string1, string2):
count=0;
len1= len(string1)
len2= len(string2)
smallLen= len1
if len2<len1:
smallLen= len2
for i in range(smallLen):
if string1[i]== string2[i]:
count+= 1
return count
def重叠(string1、string2):
计数=0;
len1=len(string1)
len2=len(string2)
smallLen=len1
如果len2按照需要完成的事情的顺序来考虑它,那么您必须首先确定两个给定字符串中哪一个具有最短的长度,因为这将是循环迭代次数的界限。在Python中,可以执行如下条件赋值:
maxloop = len(str1) if len(str1) <= len(str2) else len(str2)
单个if
语句检查两个字符串中i
位置的字符,看它们是否相等,如果相等,则将向重叠计数器添加一个字符。然后在循环结束后简单地返回计数。按照需要完成的事情的顺序考虑,您必须首先确定两个给定字符串中哪一个长度最短,因为这将是循环迭代次数的界限。在Python中,可以执行如下条件赋值:
maxloop = len(str1) if len(str1) <= len(str2) else len(str2)
单个if
语句检查两个字符串中i
位置的字符,看它们是否相等,如果相等,则将向重叠计数器添加一个字符。然后在循环结束后返回计数。尝试以下操作:
count = 0
if len(string1) < len(string2):
for i in range(len(string1)):
if string1[i] == string2[i]:
count += 1
else:
for i in range(len(string2)):
if string1[i] == string2[i]:
count += 1
return count
count=0
如果len(string1)
试试这个:
count = 0
if len(string1) < len(string2):
for i in range(len(string1)):
if string1[i] == string2[i]:
count += 1
else:
for i in range(len(string2)):
if string1[i] == string2[i]:
count += 1
return count
count=0
如果len(string1)
您得到错误的输入是什么?当较小的字符串是字符串1,较大的字符串是字符串2时会发生错误,例如:字符串1:summer、字符串2:sum,工作正常,但字符串1:sum和字符串2:summer会产生索引错误,我的老师使用了一个测试文件,所以我们无法更改输入,因为您得到了什么输入错误?当较小的字符串是字符串1,较大的字符串是字符串2时,会发生这种情况,例如:字符串1:summer,字符串2:sum,工作正常,但字符串1:sum和字符串2:summer给出了索引错误,我的老师使用测试文件,所以我们不能更改输入。很高兴你能帮忙欢迎很高兴你能帮忙