我觉得很愚蠢,不知道为什么输出在某些情况下并不好。 这是输出(在结尾) 它可以找到给定字符串中的第一个子字符串,例如: 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
答案 0 :(得分:2)
def sim(haystack, needle):
if needle in haystack:
return needle
如果你想要指数:
def sim(haystack, needle):
index = haystack.index(needle) # throws ValueError when not found
return (index, index + len(needle))
答案 1 :(得分:1)
我同意Cat的解决方案。 FWIW,你可能想研究切片语法。如果你正在进行字符串操作,切片是一个基本工具。我没有从你的代码中看到你为什么要反转你的字符串,但是如果必须的话,试试这个:
my_string = "abcdefg"
reversed = my_string[::-1] # here's the slice magic
print(reversed)