在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