zltzlt
发表于 2020-2-25 19:28:34
kinkon 发表于 2020-2-25 18:19
看看还有没有问题
解答错误
输入:"bbfcd"
输出:17
预期结果:23
zltzlt
发表于 2020-2-25 19:30:14
拉了盏灯 发表于 2020-2-25 18:57
说白了就是找子集,幸好以前做过找子集,
输入 "pcrdhwdxmqdznbenhwjsenjhvulyve" 超时
jijidebaba
发表于 2020-2-25 21:28:18
str0 = input("输入:")
substrlist = substr =
templist = []
temp = ''
count = 1
tempcount = 0
for i in range(len(str0)-1):
for j in range(len(substrlist)):
for k in range(len(substrlist)):
temp = substrlist[:k]+substrlist
if temp not in templist:
tempcount += 1
templist +=
substrlist = templist
count += tempcount
tempcount = 0
print('输出:%d'%count)
fan1993423
发表于 2020-2-25 21:45:13
se=set()
def fun337(s,t=''):
global se
for i in range(len(s)):
for j in range(len(s)+1):
se.add(t+s)
fun337(s,t)
t=s[:i+1]
return len(se)
我现在有点脑袋发蒙,如果效率不行那就交给楼主改造吧
阴阳神万物主
发表于 2020-2-25 21:51:58
zltzlt 发表于 2020-2-25 17:54
是的
如果说是这样的话,那么示例2好像就有点问题了,'ab' 和 'ba' 看起来是一样的组合呀。
阴阳神万物主
发表于 2020-2-25 22:17:04
zltzlt 发表于 2020-2-25 17:23
e, bbb, bebb, beb, bb, b, eb, ebb, be
话说 _e_b 和 _eb_ 是这样产生的子串吗?
这样的话就包含了排列哟,因为纯组合的话 be__ 跟这两个是一模一样的呢。
阴阳神万物主
发表于 2020-2-25 22:27:02
请问:
'aba' 与 'aab' 与 'baa' 三个的答案都一样吗?
感觉14#是问错了关键点。
如果说我提出的那三个答案一样的话,那么请回应我24#提出的矛盾。
拉了盏灯
发表于 2020-2-25 22:37:41
阴阳神万物主 发表于 2020-2-25 22:27
请问:
'aba' 与 'aab' 与 'baa' 三个的答案都一样吗?
感觉14#是问错了关键点。
不一样,首字符前面不能加,尾字符后面不能加,
蒋博文
发表于 2020-2-25 22:42:51
管他超不超时的,先试试
def fun(x):
result = [[]]
for each in x:
result.extend( for subset in result])
list1 = []
for i in result:
if i not in list1:
list1.append(i)
while [] in list1:
list1.remove([])
return len(list1)
阴阳神万物主
发表于 2020-2-25 22:45:30
拉了盏灯 发表于 2020-2-25 22:37
不一样,首字符前面不能加,尾字符后面不能加,
嗯,我就是炸一下楼主,看他慌不慌https://dss1.baidu.com/70cFfyinKgQFm2e88IuM_a/forum/pic/item/562c11dfa9ec8a13424f9c95fc03918fa0ecc06a.jpg
walleeee
发表于 2020-2-25 23:49:17
本帖最后由 walleeee 于 2020-2-26 00:03 编辑
shuru=input('输出:')
n=len(shuru)
setwanted=set()
for i in range(n**n):
string=shuru
a=[]
k=i
for j in range(n):
a.append(k%n)
k=k//n
a=set(a)
for j in set(a):
string=string+' '+string
string=string.replace(' ','')
setwanted.add(string)
setwanted.remove('')
setwanted.add(shuru)
print('输出:',len(setwanted))
print(setwanted)
算不动。。
546623863
发表于 2020-2-26 00:59:20
本帖最后由 546623863 于 2020-2-26 01:02 编辑
睡前来瞅了一眼,居然更新题目了,看前面的好像都是暴力的。。。算了,明天再敲代码
walleeee
发表于 2020-2-26 01:28:34
本帖最后由 walleeee 于 2020-2-26 08:08 编辑
shuru=input('输入:')
n=len(shuru)
print(n)
setwanted={' '}
shuru=list(shuru)
for i in range(n):
print(i)
a=shuru.pop()
setinter=set()
for j in setwanted:
b=a+j
setinter.add(b)
setwanted=setwanted.union(setinter)
setwanted.remove(' ')
listwanted=[]
for each in setwanted:
listwanted.append(each.replace(' ',''))
print('输出:',len(listwanted))
print(listwanted)
最终结果是836817663
ouyunfu
发表于 2020-2-26 07:48:54
l=[]
def f337(s:str)->int:
global l
for i in range(len(s)):
if s not in l:
l.append(s)
if s not in l:
l.append(s)
f337(s[:i]+s)
return l
TJBEST
发表于 2020-2-26 10:26:47
若是26个不同的字母,答案是 2的26 次方 无论是什么算法 不超时那是真的牛,我估计够呛
Jonsen_Brad
发表于 2020-2-26 13:55:15
本帖最后由 Jonsen_Brad 于 2020-2-26 14:05 编辑
fan1993423 发表于 2020-2-25 16:38
哦,我想问下,比如abac 是不是ab,aa,,ac,ba,bc,ac,aba,abc,bac都是,但cab这种倒过来的不是?
应该算。。
KevinHu
发表于 2020-2-26 14:42:00
“”“
def fun(s):
count = 0
for i in range(len(s)):
for j in range(i, len(s)):
count += 1
print(count)
str1 = input("请输入一个字符串:");
fun(str1)
”“”
KevinHu
发表于 2020-2-26 14:51:47
KevinHu 发表于 2020-2-26 14:42
“”“
def fun(s):
count = 0
这个不对
应该是这个:
def fun(s):
temp = []
count = 0
for i in range(len(s)):
for j in range(i, len(s)):
if s not in temp:
# print(s, end = " ")
count += 1
temp.append(s)
print("", count, sep = "\n")
str1 = input("请输入一个字符串:");
fun(str1)
jdzzj
发表于 2020-2-26 16:28:21
def fun337(strs):
substrs=[[]]
for i in strs[::-1]:
substrs=substrs+[+j for j in substrs]
substrs=list(set(tuple(i) for i in substrs)) #去重
return len(substrs)-1 #去掉一个空子集
kinkon
发表于 2020-2-26 21:32:40
大伙都超时,弄个最短的好了😁
def f337(s):
sub = ['']
for i in s:
sub +=
return len(set(sub))-1