在python中找出给定字符串中不同子字符串数量的程序
假设,我们得到了一个由's'表示的子串。我们必须找出唯一的子串并返回这些子串的数量作为输出。
因此,如果输入类似于s='prrstvt',则输出将为26。
不同的子串将是-
'pr','rrs','st','rr','tv','rstv','stvt','prrstv','prrstvt','rrstvt','s','prrst','stv','rrstv','rst','v','tvt','rstvt','r','rs','vt','t','prr','p','rrst',和'prrs'。
示例
让我们看看以下实现以获得更好的理解-
def solve(s): visited = dict() for ind, let in enumerate(s): temp = set() if ind-1 in visited: for has_let in visited[ind-1]: temp.add(has_let+let) temp.add(let) visited[ind] = temp res = set() for sets in visited: res.update(visited[sets]) return len(res) print(solve('prrstvt'))
输入
'prrstvt'输出结果
26