首页 > 解决方案 > 没有循环的Python任务子字符串

问题描述

您必须计算给定字符串的多少子字符串以相同的字母开头和结尾。 您不能在代码中使用以下内容: for、while、sum、map、reduce、filter、import、eval、exec、complile、single

我的代码但不能正常工作:

def substringsV2(i,string,sub_list):
    if i == len(string)-1:
        return len(sub_list),sub_list
        # return len(sub_list)
    if string[:i + 2][0] == string[:i + 2][-1] and  string[:i + 2]not in sub_list:
        substring = string[:i + 2]
        sub_list.append(substring)
    if string[i:][0] == string[i:][-1]  and  string[i:] not in sub_list:
        substring = string[i:]
        sub_list.append(substring)
    return substringsV2(i + 1,string,sub_list)
 
def substrings(i,string,subs_list):
    if i == len(string):
        print(subs_list)
        return substringsV2(0,string,subs_list)
    if len(string[i]) == 1:
        subs_list.append(string[i])
    return substrings(i+1,string,subs_list)

s = 'aba'
if len(s) == 0:
    print()
else:
    print(substrings(0,s,[]))

例如输入 'aba' 子串:a, b , a , ab, ba, aba ,

输出 4 ,因为有 4 个子字符串以同一个字母开头和结尾

标签: pythonpython-3.xsubstring

解决方案


推荐阅读