ouyunfu
发表于 2020-1-31 23:50:52
str = input("请输入要统计的单词:")
def D(i):
global count
if i not in L1:
L1.append(i)
elif i-1!=0 and i-1 not in L1:
L1.append(i-1)
count=count+1
elif i-1==0:
count=count+1
else:
count=count+1
return D(i-1)
return L1, count
res = {}
for i in str:
if i in res:
res = res + 1
else:
res = 1
L=list(res.values())
L1=[]
count=0
for i in L:
if i not in L1:
L1.append(i)
elif i-1!=0 and i-1 not in L1:
L1.append(i-1)
count+=1
elif i-1==0:
count+=1
else:
count+=1
D(i-1)
print(count)
ouyunfu
发表于 2020-2-1 00:28:31
str = input("请输入要统计的单词:")
def D(i):
global count
if i not in L1:
L1.append(i)
elif i-1!=0 and i-1 not in L1:
L1.append(i-1)
count=count+1
elif i-1==0:
count=count+1
else:
count=count+1
return D(i-1)
return L1, count
res = {}
for i in str:
if i in res:
res = res + 1
else:
res = 1
L=list(res.values())
L1=[]
count=0
for i in L:
if i not in L1:
L1.append(i)
elif i-1!=0 and i-1 not in L1:
L1.append(i-1)
count+=1
elif i-1==0:
count+=1
else:
count+=1
D(i-1)
print(count)
阴阳神万物主
发表于 2020-2-1 08:54:14
hrp 发表于 2020-1-31 21:21
思路一样
这就是缘分呐。卍
kinkon
发表于 2020-2-1 11:52:12
本帖最后由 kinkon 于 2020-2-1 12:51 编辑
def f320(n):
d={}
for i in n:
d=n.count(i)
l=sorted(list(d.values()),reverse=True)
if len(l)<=1:return 0
k=0
for j in range(len(l)-1):
while l>=l:
l-=1
k+=1
if l==0:break
print(l)
return k
William4869
发表于 2020-2-1 14:09:18
def f320(s):
A=[]
a=set(s)
b=set()
for each in a:
A.append(s.count(each))
A.append(0)
A.sort(reverse=True)
sum=0
for i in range(0,26):
if A==0:
while i<26:
sum+=A
i+=1
break
elif A>=A:
sum=sum+A-A+1
A=A-1
return sum
print(f320("qwertyuiopasdfghjklzxcvbnm"*100))
zltzlt
发表于 2020-2-1 15:54:08
wanting-for 发表于 2020-1-31 18:15
菜鸟与大佬的差距就是,大佬啥都考虑的清清楚楚。而我就漏这漏那,不严谨....
1012 ms,效率偏低
zltzlt
发表于 2020-2-1 15:55:06
fan1993423 发表于 2020-1-31 18:39
820 ms
zltzlt
发表于 2020-2-1 15:56:06
阴阳神万物主 发表于 2020-1-31 18:41
娱乐向解题,嗯,好像是。(AWA)
560 ms
zltzlt
发表于 2020-2-1 15:57:11
SHRS23 发表于 2020-1-31 19:13
请版主帮忙测试
输入大数据出错(由于字符串太长,这里我就不展示了)
IndexError: list index out of range
zltzlt
发表于 2020-2-1 15:57:55
TJBEST 发表于 2020-1-31 21:16
非常朴素的做法
569 ms
zltzlt
发表于 2020-2-1 16:00:15
hrp 发表于 2020-1-31 21:21
思路一样
解答错误
输入:"abcd"
输出:6
预期结果:3
zltzlt
发表于 2020-2-1 16:00:47
546623863 发表于 2020-1-31 23:00
感觉我每次写的思路都比较奇葩。。。。
849 ms,不错
zltzlt
发表于 2020-2-1 16:04:40
ouyunfu 发表于 2020-1-31 23:50
str = input("请输入要统计的单词:")
def D(i):
global count
1011 ms,效率偏低
zltzlt
发表于 2020-2-1 16:05:53
kinkon 发表于 2020-2-1 11:52
2595 ms,效率不高啊
zltzlt
发表于 2020-2-1 16:06:33
William4869 发表于 2020-2-1 14:09
def f320(s):
A=[]
a=set(s)
输入 'aaabbb' 出错,你自己测试下。
William4869
发表于 2020-2-1 16:18:06
本帖最后由 zltzlt 于 2020-2-1 16:19 编辑
zltzlt 发表于 2020-2-1 16:06
输入 'aaabbb' 出错,你自己测试下。
def f320(s):
A=[]
a=set(s)
b=set()
num=1
for each in a:
A.append(s.count(each))
num+=1
A.append(0)
A.sort(reverse=True)
sum=0
for i in range(num+1):
if A==0:
while i<num:
sum+=A
i+=1
break
elif A>=A:
sum=sum+A-A+1
A=A-1
return sum
疏忽了,,这样呢
zltzlt
发表于 2020-2-1 16:19:38
William4869 发表于 2020-2-1 16:18
疏忽了,,这样呢
这样可以了,但是用时较长。
hrp
发表于 2020-2-1 16:47:20
zltzlt 发表于 2020-2-1 16:00
解答错误
输入:"abcd"
def func320(s):
templist =
templist.sort(reverse=True)
result, length = 0, len(templist)
for ind in range(length):
if len(set(templist)) != len(templist):
if templist:
num = templist.count(templist)
for i in range(ind + 1, ind + num):
templist -= 1
result += 1
else:
break
return result
zltzlt
发表于 2020-2-1 16:48:48
hrp 发表于 2020-2-1 16:47
980 ms
坑得飞起
发表于 2020-2-1 22:54:15
本帖最后由 坑得飞起 于 2020-2-1 23:17 编辑
st=input()
list0, list1, list2, ans = [], [], [], 0
for i in st:
list0+=i
list1 = list(set(list0))
for i in list1:
list2+=
list2.sort(reverse=True)
for i in range(1,len(list2)):
if list2==0 :
ans+=list2
list2=0
elif (list2>=list2)and(list2!=0):
ans+=list2-(list2-1)
list2=list2-1
print(ans)