Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成给定字符串的所有子字符串_Python_Python 3.x_Algorithm_Substring - Fatal编程技术网

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]
    只生成零长度字符串
    '
但是

  • 'abba'[3:4]
    生成长度为1的字符串
    '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',要删除重复项,请将值添加到集合中。