TJBEST
发表于 2020-2-18 11:16:10
朴素做法,感觉的python的序列还是while更舒服
def fun334(string):
M = len(string)
if M < 3:
return M
maxSub = 1
preCharacter = string
sublenth = 1
count = 1
index = 1
while index < M:
tempCharacter = string
if tempCharacter != preCharacter:
sublenth += 1
count = 1
preCharacter = tempCharacter
index += 1
else:
if count == 1:
sublenth += 1
count = 2
index += 1
else:
maxSub = sublenth if sublenth > maxSub else maxSub
count = 1
sublenth = 1
else:
maxSub = sublenth if sublenth > maxSub else maxSub
return maxSub
拉了盏灯
发表于 2020-2-18 14:04:35
用数学排列组合写的逻辑挺清晰,
l=string.split('aaa')
l2=[]
for i in l:
l2.extend(i.split('bbb'))
ma=len(max(l2))
if len(l2)==1:
print(ma)
elif l2==max(l2) or l2 == max(l2):
print(ma+2)
else:
print(ma+4)
一个账号
发表于 2020-2-18 14:36:30
def func(str1):
list1 = []
list2 = []
flag = False
for i in range(len(str1)):
for j in str1:
list1.append(j)
temp = "".join(list1)
if "aaa" in temp or "bbb" in temp:
list2.append(len(list1)-1)
flag = True
break
if not flag:
list2.append(len(list1))
list1.clear()
flag = False
return max(list2)
zltzlt
发表于 2020-2-18 16:01:31
塔利班 发表于 2020-2-17 21:59
解答错误
输入:"abbaababbbbabaababbbabbbbaaabaababaaababbabbbabbaabbbaaabbabaaababaabaaaababbabababbbaabbbabbaabbbabbababbaaaaaaabaabbabbbaabbaaabbbabbbaabbbbabbaaabbaaabaaaaaaabbaabaaaaaabababaabaaaabbabbbababababaababbbabbbbbaaaabbbbbabababaaabbbbbabaaaaaaaaababbabaababbbbababbbbaabaaabaabbbbbbaaabbababbbabbabbbabababbbbbbaaababaabbababbbbababaabaabbabbabababaabbabbbbaaaabaabbababbbbbbbbbababaabbbabaabbaaabbbababbbaaaabbababaaabbbabababaabbbbbbabaaababbbbbbbaaaaabbaabbaabaabbbaabbabbbbbbbaabbaaaaaabbbbbbbbababbbabbabaaabaaabbababababaaaaaabaabbbbbbbaaabbbabbbbaabaababbabbabbbbbaabbabaaabbbababbbbabbbbaabaabaabaabaaaaababaaaabbbbbabaababbaababbbbbabbabaaaaabbbbbbbbbbbbaababaabaabbaabbaabaababbaaaababbbabbbabbbabaaaaaabaabbabbbbabababaaabbbaaaababbaabaaabbbbbaabaabbbabaaaaababbabbbbababaaabbbabbbbbbbaaaaaaabbabbbabbbabaababaaabbbbaaababbababaabbbbaabaaabbbbbbabbaabbbbababaabaaaaaabaaaabaabaaabbaabbaaaaaababaabbbbbaaaabbbaababbaaabababbbbababbaaabaaabbababbbbbbaaababaaabaaaaabbabbaaabbababaaabbbbabbabababaaaababaaaaabaaababbbbaaababbbaaabaaaaababbbbbaababbbbaaaabbabbbbbabbabbaabababaabbbbbbbbbabbaaabbaaaabbbbbababaaababaabbbbabbabababbbabbbbabaaabaabbbababbabbbabbbbabbaaaaaabbbbbbabababaabbbbbaaaaabbabbbaaabbaaabaaaaabbbbbbabbaaabababaababbabaabbabbbbaaaaabaaababbbbaaaabbbbabaabaaaaaabababaabbbabaabbababaabbbaaabbabbabababbaababaaabbaabbabbabbbaaabbaaabbbabaabbbabbbbbababbabbabbababbabbbbaaaabbbbababaaabbbaaaabbbbbbbaaababbaabbaabaaabbaababaaababbbabaabaaabbbbaaababababbabaabaabbbbabbbababbaaaababbabaabaaabbbbbbbbaababaaababbbbbbbabbabbbbabaabaaabbbbbabbaaabbaaababaaabaaabbabababbbabbaaababbababbbaaaabbaaaababbaabaabbbabbbaabbbbbabbbaaababbbaababababaabbbabbbabbbbbbbbbbbbbabaabaabbaaaabbbbaababbbbabbaaaaabbbbbbabaaabbbbbbbabbbbbaaabaabbaabbaababbaaaababbbbbbabbabbabbaabbbbabbaaaaaababaabbaabaabbbbbabbbaabbbbbabaaaababababababbbbaaabbabbbbabbbbbbbbbabbbaabbaababbabaaaabaaabbbbbaaabbbbbabbbabaabaabbbabbaaaabbbabbbbbabbbbbaaabbaaaaababbbbbbbaaaaabbbaaabaabaaabbbabbaaabababbbabaabbaabba"
输出:30
预期结果:29
塔利班
发表于 2020-2-18 16:20:35
zltzlt 发表于 2020-2-18 16:01
解答错误
输入:
def f334(x):
m,ca,cb,s=0,0,0,0
for e in x:
s+=1
if e=='a':
cb=0
ca+=1
if ca==3:
m=max(s-1,m)
ca-=1
s=2
else:
ca=0
cb+=1
if cb==3:
m=max(s-1,m)
cb-=1
s=2
return max(s,m)
蒋博文
发表于 2020-2-18 20:47:55
本帖最后由 蒋博文 于 2020-2-18 20:55 编辑
试试吧,应该能行{:10_277:}def fun(s):
flag,count,result=True,0,0
for i in range(len(s)-2):
if len(set(s))==2 and flag:
count+=3
flag=False
elif len(set(s))==2 and not flag:
count+=1
elif len(set(s))==1:
result=max(count,result)
count,flag=0,True
return max(count,result)
wcshds
发表于 2020-2-18 20:52:19
本帖最后由 wcshds 于 2020-2-18 21:18 编辑
看看 這個行不行
import re
def Test(content):
if (content[:3] not in ['aaa', 'bbb']) and (content[-3:] not in ['aaa', 'bbb']):
content = re.sub(r'a{3,}', 'aa@aa', content)
content = re.sub(r'b{3,}', 'bb@bb', content)
if content[:3] in ['aaa', 'bbb']:
content = re.sub(r'a{3,}', 'aa@aa', content)
content = re.sub(r'b{3,}', 'bb@bb', content)
content = content
if content[-3:] in ['aaa', 'bbb']:
content = re.sub(r'a{3,}', 'aa@aa', content)
content = re.sub(r'b{3,}', 'bb@bb', content)
content = content[:-3]
lista = content.split('@')
return len(max(lista, key = len))
fan1993423
发表于 2020-2-18 20:56:54
蒋博文 发表于 2020-2-18 20:47
试试吧,应该能行
不要抄我的答案
fan1993423
发表于 2020-2-18 20:59:04
@zltzlt 我都服了,明目大胆的抄袭答案。以后所有鱼油写的答案在公布之前都不显示吧,像以前冬雪雪冬那样。还有今天有题吗?
fan1993423
发表于 2020-2-18 21:01:18
本帖最后由 fan1993423 于 2020-2-18 21:04 编辑
除了把fun334改成了fun,其他一字不改。一点不尊重别人的劳动成果。建议对这个人进行处置
fan1993423
发表于 2020-2-18 21:03:12
我已截图保存证据
zltzlt
发表于 2020-2-18 21:04:35
fan1993423 发表于 2020-2-18 21:01
除了把fun334改成了fun333,其他一字不改。一点不尊重别人的劳动成果。建议对这个人进行处置
收到,第 333 题也是抄袭的吗?
fan1993423
发表于 2020-2-18 21:05:53
zltzlt 发表于 2020-2-18 21:04
收到,第 333 题也是抄袭的吗?
打快了,就是这道题,你看答案和我的答案,除了定义函数那里 我的fun334,它的fun,其他一字不变
wanting-for
发表于 2020-2-18 21:25:05
fan1993423 发表于 2020-2-18 21:05
打快了,就是这道题,你看答案和我的答案,除了定义函数那里 我的fun334,它的fun,其他一字不变
我抄作业,我还得故意抄错几道题呢{:5_90:}
fan1993423
发表于 2020-2-18 21:32:47
wanting-for 发表于 2020-2-18 21:25
我抄作业,我还得故意抄错几道题呢
它不是来骗鱼币,骗荣誉,骗贡献吗?我给它扣个够
Vmtayvj
发表于 2020-2-19 00:18:22
本帖最后由 Vmtayvj 于 2020-2-19 00:27 编辑
好難阿~
Vmtayvj
发表于 2020-2-19 00:28:30
def AT(list1):# Array traversal
for each in range(len(list1)):
if isinstance(list1, list):
for each2 in AT(list1):
yield each2
continue
yield list1
def ATT(list1):
r = []
for each in AT(list1):
r.append(each)
return r
def func334(str1):
import re
if "aaa" not in str1 and "bbb" not in str1: return len(str1)
aRegex = re.compile("a{3}")
bRegex = re.compile("b{3}")
aCand = aRegex.split(str1)
bCand = []
rbCand = []
aFlag = "aaa" in str1
aCand.sort(reverse=True)
for each in range(len(aCand)):
if "bbb" in aCand:
bCand.append(aCand)
if len(bCand) <= 0: return len(aCand)+2
for each in range(len(bCand)):
rbCand.append(bRegex.split(bCand))
rbCand = ATT(rbCand)
rbCand.sort(reverse=True)
print(rbCand)
if aFlag:
return len(rbCand)+4
return len(rbCand)+2
kinkon
发表于 2020-2-19 22:22:41
zltzlt 发表于 2020-2-17 21:25
没有啊,一天一题(除了悬赏题)
这题没积分奖励和效率测试吗?
zltzlt
发表于 2020-2-20 14:20:14
William4869 发表于 2020-2-17 22:26
试试
653 ms
zltzlt
发表于 2020-2-20 14:20:45
fan1993423 发表于 2020-2-17 22:33
在写个方法
会超时