![](/img/trans.png)
[英]Generate all substrings(in lexicographic order)of given string in alphabetical order
[英]Generate all substrings of a given string
我想從給定的字符串中生成所有可能的子字符串而沒有冗余值,如下所示:
輸入: '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]
產生長度為 1 的字符串'a'
。 您可以使用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']
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.