Python 生成给定字符串的所有子字符串
我想从给定的字符串中生成所有可能的子字符串,无冗余值,如下所示: 输入:Python 生成给定字符串的所有子字符串,python,python-3.x,algorithm,substring,Python,Python 3.x,Algorithm,Substring,我想从给定的字符串中生成所有可能的子字符串,无冗余值,如下所示: 输入:'abba' 输出:'a','b','ab','ba','abb','bba' 这是我的密码 s='abba' 对于范围(0,len(s))内的i: 对于范围(i+1,len(s))内的j: 印刷品(s[i:j]) 我的输出是a、ab、abb、b、bb、b 正如您从输出中看到的,'b'重复,而'bba'不存在 我想知道并学习生成所有唯一子字符串的正确逻辑。稍微修改一下索引 s='abba' 对于范围(0,len(s))内的
'abba'
输出:'a','b','ab','ba','abb','bba'
这是我的密码
s='abba'
对于范围(0,len(s))内的i:
对于范围(i+1,len(s))内的j:
印刷品(s[i:j])
我的输出是a、ab、abb、b、bb、b
正如您从输出中看到的,'b'
重复,而'bba'
不存在
我想知道并学习生成所有唯一子字符串的正确逻辑。稍微修改一下索引
s='abba'
对于范围(0,len(s))内的i:
对于范围(i,len(s))内的j:
印刷品(s[i:(j+1)])
产生以下输出
a
ab
abb
abba
b
bb
bba
b
ba
a
基本上,索引修复会考虑到这一点
只生成零长度字符串'abba'[3:3]
'
生成长度为1的字符串'abba'[3:4]
'a'
set()
删除重复项,如下所示:
s='abba'
ss=集合()
对于范围(0,len(s))内的i:
对于范围(i,len(s))内的j:
ss.增补(s[i:(j+1)])
打印(已分类(ss))
然后您将得到以下结果
['a',ab',abb','abba','b','ba','bb','bba']
您能用另一个字符串(例如abcd
)澄清您想要什么吗abba
是一个坏例子,因为输出中的ba
可能引用输入的最后两个字母或前两个字母的组合。这里是另一个输入'ifailuhkqq'输出'i','ifa','fai',要删除重复项,请将值添加到集合中。