python - 生成给定字符串的所有子字符串
问题描述
我想从给定的字符串中生成所有可能的子字符串,没有冗余值,如下所示:
输入:'abba'
输出:'a','b','ab','ba','abb','bba'
这是我的代码
s='abba'
for i in range (0,len(s)):
for j in range (i+1,len(s)):
print(s[i:j])
我的输出是'a','ab','abb','b','bb','b'
从输出中可以看出'b'
是重复的,并且'bba'
不存在。
我想知道并学习正确的逻辑来生成所有唯一的子字符串。
解决方案
稍微修复索引
s='abba'
for i in range (0,len(s)):
for j in range (i,len(s)):
print(s[i:(j+1)])
产生以下输出
a
ab
abb
abba
b
bb
bba
b
ba
a
基本上,索引修复考虑到了
'abba'[3:3]
只产生零长度字符串''
但
'abba'[3:4]
'a'
产生长度为 1 的字符串。
您可以使用 删除重复项set()
,如下所示:
s='abba'
ss = set()
for i in range (0,len(s)):
for j in range (i,len(s)):
ss.add(s[i:(j+1)])
print(sorted(ss))
然后你会得到以下结果['a', 'ab', 'abb', 'abba', 'b', 'ba', 'bb', 'bba']
。
推荐阅读
- python-3.x - 使用 __sub__ 时,在 Fraction 类中不会产生所需的结果
- google-assistant-sdk - 如何能够在 Dialogflow 中使用系统实体?
- javascript - PowerPoint 幻灯片查看器在线
- php - 我有连接到 MySQL 的 php 代码的问题
- google-cloud-dataprep - 格式为 yyyy-mm-dd HH:MM:SS 到日期时间的 Dataprep 字符串列
- ios - 如何在 iOS Ionic 应用程序中选择拨号器应用程序?
- assembly - 为什么这个 shellcode 会导致目标挂起?
- javascript - 无法将背景颜色值从 json 设置到 HTML 页面
- python - 如何在python中创建一个全局变量
- rxjs - 返回来自最近事件的响应,而不是最后的异步响应