在python中找到给定字符串中的不同子字符串的数量的程序

在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’。

为了解决这个问题,我们将遵循以下步骤 –

  • 已访问 := 新映射
  • 对于给定字符串s中的每个索引ind和值let,执行以下操作
    • temp := 一个新集合
    • 如果ind-1存在于visited中,那么
      • 对于visited[ind-1]中的每个has_let,执行以下操作
      • 将has_let + let添加到列表temp中
    • 将let添加到列表temp中
    • visited[ind] := temp
  • res := 一个新集合
  • 对于visited中的每个集合,执行以下操作
    • 将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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程