我觉得自己很愚蠢,不知道为什么在某些情况下产出不好。 这是输出(在结尾) 它应该在给定的字符串中找到第一个子字符串,例如: sim('banan','na')->;'na'
def rev (str):
rev_str=''
i = len(str)-1;
while (i >= 0):
rev_str += str[i];
i = i-1;
return rev_str;
######################################
def sim (str,sub):
sub_len = len (sub);
start = str.index(sub);
rev_str = rev(str)
rev_sub = rev(sub)
if (start ==0):
start =1;
end = start + rev_str.index(rev_sub,start-1);
ret_val = ''
print start , end
for n in range (start,end):
ret_val += str[n];
return ret_val;
print sim('abcdef', 'abc')
print sim('abcdef', 'bc')
print sim('banana', 'na')
the output :
1 4
bcd
1 4
bcd
2 4
na
我同意猫的解决办法。FWIW,您可能想学习一下切片语法。如果你在做字符串操作,切片是一个基本的工具。我不明白为什么要从代码中反转字符串,但如果必须反转,请尝试以下操作:
如果需要索引:
相关问题 更多 >
编程相关推荐