假设,我们得到了一个由 '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