Azm*_*234 5 python string time-complexity nested-loops
我有一个输入abcde。我正在尝试输出这样的内容:
a
ab
abc
abcd
abcde
b
bc
bcd
bcde
c
cd
cde
d
de
e
Run Code Online (Sandbox Code Playgroud)
我无法编写没有嵌套循环的代码。我的问题是这个问题的时间复杂度为O(n)的解决方案是什么?
我的代码如下:
s = "abcde"
for i in range(len(s)):
for x in range(i, len(s) + 1):
a = s[i:x]
if a != "": print(a)
Run Code Online (Sandbox Code Playgroud)
Jos*_*hua -1
让我们在没有嵌套循环的情况下做到这一点!
这是一个带有库的游戏random,但执行时间与您的代码相似。
from random import randint
list1=[]
str1='abcde'
while len(list1)!=int(((len(str1)+1)*len(str1))//2):
i=randint(0,len(str1))
j=randint(0,len(str1))
i,j=max(i,j),min(i,j)
if i!=j:
a=str1[j:i]
if a not in list1:
list1.append(a)
print(a)
Run Code Online (Sandbox Code Playgroud)
如果字符串 ,str1 = 'abcdef'则打印:
de
abcdef
cdef
abc
ef
d
c
abcd
b
abcde
def
bcde
f
bcdef
a
bcd
cd
e
ab
cde
bc
Run Code Online (Sandbox Code Playgroud)
现在,如果您希望数据按照您指定的顺序排列,请使用sort:
list1.sort()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |