用 Python 编写程序,找出给定字符串中不同子字符串的数量
pythonserver side programmingprogramming更新于 2025/12/2 9:48:17
假设我们得到一个用"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'。
为了解决这个问题,我们将遵循以下步骤 −
- visited := a new map
- 对于每个索引 ind 和 s 中的值 let,执行
- temp :=一个新的集合
- 如果 ind-1 存在于 accessed 中,则
- 对于 accessed[ind-1] 中的每个 has_let,执行
- 将(has_let + let)添加到列表 temp
- 对于 accessed[ind-1] 中的每个 has_let,执行
- 将(let)添加到列表 temp
- visited[ind] := temp
- res := 一个新的集合
- 对于 accessed 中的每个集合,执行
- 将(visited[sets])添加到 res
- 返回 res 的大小
示例
让我们看看下面的实现以便更好地理解 −
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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

