鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 331

[复制链接]
发表于 2020-2-13 23:15:44 | 显示全部楼层
zltzlt 发表于 2020-2-13 18:10
解答错误

输入:

这个删除前面两个B最后两个A,不就是A开头,B结束,中间有AB的字符串了吗?A...AB...B到底是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 23:17:48 | 显示全部楼层
fan1993423 发表于 2020-2-13 23:15
这个删除前面两个B最后两个A,不就是A开头,B结束,中间有AB的字符串了吗?A...AB...B到底是什么意思

中间的省略号可以为零个A 或者零个B
也就是说AB也是可以的
还有全是A,或者全是B也是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 23:19:40 | 显示全部楼层
wanting-for 发表于 2020-2-13 23:17
中间的省略号可以为零个A 或者零个B
也就是说AB也是可以的
还有全是A,或者全是B也是可以的

是这个意思嘛? @zlzlt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 01:05:10 | 显示全部楼层
本帖最后由 kinkon 于 2020-2-14 16:27 编辑
def w331(s):
    a=b=c=0
    for i in s:
        if i == 'A':
            a += 1
            b -= 1
            c=min(c,b)
        else:
            b += 1
    return c+a

评分

参与人数 1荣誉 +4 鱼币 +4 收起 理由
zltzlt + 4 + 4

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 10:11:32 | 显示全部楼层
t = input()
count = []       #生成一一对应的列表count,j   count存放相同字母小段个数
j = []           #j存放count中每个值对应的字母
j.append (t[0])
x = t[0]
k = 0            #每段个数
p = 0            #A总数
for i in t:
    if i == 'A':
        p += 1
    if i != x:
        x = i
        f = 0
    else:
        f = 1
    if f == 0:
        j.append (i)
        count.append (k)
        k = 1
    else:
        k += 1
count.append (k)
if j[0] == 'A':                 #最后A在count或j中的位置lastx
    if len(count) % 2 == 0:
        lastx = len(count) - 2
    else:
        lastx = len(count) - 1
else:
    if len(count) % 2 == 0:
        lastx = len(count) - 1
    else:
        lastx = len(count) - 2
c = 0
sa = 0
m = len(t)
while p >= 0:                   #找到最小去掉的个数
    sb = 0
    if c > 0:
        sa = sa + count[lastx+2]
    b = lastx - 1
    while b >= 0:
        sb = sb + count[b]
        b = b - 2
    if sb+sa < m:
        m = sb + sa
    c += 1
    p -= 1
    lastx -= 2
print(str(m))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 12:18:50 | 显示全部楼层
zltzlt 发表于 2020-2-13 18:10
解答错误

输入:

给我绕懵了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 13:09:17 From FishC Mobile | 显示全部楼层
塔大师的解法没看懂呢…每一行代码都懂,凑到一块为啥就能算出答案啊,这是个什么思路啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 13:23:41 | 显示全部楼层
def fun(x):
    a,b,c,d=len(x),0,0,x.count('A')
    for i in x:
        if i == 'A':
            b += 1
        if i == 'B':
            c += 1
        a = min(c + d - b,a)
    return a

评分

参与人数 2荣誉 -10 鱼币 -10 贡献 -3 收起 理由
zltzlt -5 -5 禁止抄袭!
fan1993423 -5 -5 -3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:02:37 | 显示全部楼层

还会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:02:57 | 显示全部楼层
wanting-for 发表于 2020-2-13 20:29
看似简便,就是不知道效率怎们样,
这道题感觉方法还是比较明确的

502 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:06:13 | 显示全部楼层
塔利班 发表于 2020-2-13 20:49
想了想count本来就死On,多跑了一圈

嗯,虽然速度提升不是很明显
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:07:00 | 显示全部楼层

解答错误

输入:
"BBAABAABBAAAAABAABBABABABABAABBAABABAAABABBBABBABAAAABAABAABBBBBABAABABBBBAAABBBAABAABAABBBABBABBBBABABBBABAAAAAABBBAABBBBABABBBAABABABAAAABBAABAAABAABABAAAAAABAAABBAAABBAAAABBAAABAAAAABBBABBABBBAABBBBAAAAAABBBABBABABBBBBABAABAAABBAABAABBBBBBAAABAABABAAAABAABAAABABBABBAAAABBABABBABABBBBABABBBAABAAAAABAABABABBBABAAABBAAABBBBBBBABAAAABAAAABBAAAABABAABBAABBBBBBAABBBBAABABBBBBAAABBAABBBBBAAAABABAABABBAAABAAABABABBAABAABBAAAABBBBAAAAAAABBABAABBBAABABBBBBABABAAAABAAAABAABBABABBBBAABAABBAABBBAAABBABABABBAABBAAAABABBBAABAAABBABABBBABABABABBAAABBBBAABAABAAABAAABAAABBBAABAAAAAAAAABBBBBBBAABABBABBABAABBAAAABABAAABAABAABBBBBABBBBBAABBBAABAABAABAAABAABBBBABAABBABABAAAABBBAAAABBBABABABBAABAABABABABAABBABABAABBBABBABAAABBABABBAABBAAABAABAABBBAAABBBBAAABBABBABBBBABBAABBABAAAAAABBBBAABBABBBBBBABBABAAABABBBAAAAAABBBAABAAABBAABAAABBAAABAABABBABABBBAAABBAAABABBAAAAABBAABBBBABABAAAABBBABBBAAAAABBAABBBBAABBBBBBAABABBBAABBAABAAABAABBAABBABABBBBABABAAAABABBAABABAABAABAABBAABBBABABBBABAAABAABBAABBBABAABBBBBABB"
输出:485
预期结果:477
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:09:13 | 显示全部楼层
genius_7321 发表于 2020-2-13 21:38
我的方法好像有点笨:

效率偏低,而且直接返回结果就行了哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:10:03 | 显示全部楼层
ouyunfu 发表于 2020-2-13 21:50
def f331(s:str)->int:
    res,tA,a,b,=min(s.count('A'),s.count('B')),s.count('A'),0,0
    for i in ...

856 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:11:11 | 显示全部楼层

解答错误

输入:
"BBAABAABBAAAAABAABBABABABABAABBAABABAAABABBBABBABAAAABAABAABBBBBABAABABBBBAAABBBAABAABAABBBABBABBBBABABBBABAAAAAABBBAABBBBABABBBAABABABAAAABBAABAAABAABABAAAAAABAAABBAAABBAAAABBAAABAAAAABBBABBABBBAABBBBAAAAAABBBABBABABBBBBABAABAAABBAABAABBBBBBAAABAABABAAAABAABAAABABBABBAAAABBABABBABABBBBABABBBAABAAAAABAABABABBBABAAABBAAABBBBBBBABAAAABAAAABBAAAABABAABBAABBBBBBAABBBBAABABBBBBAAABBAABBBBBAAAABABAABABBAAABAAABABABBAABAABBAAAABBBBAAAAAAABBABAABBBAABABBBBBABABAAAABAAAABAABBABABBBBAABAABBAABBBAAABBABABABBAABBAAAABABBBAABAAABBABABBBABABABABBAAABBBBAABAABAAABAAABAAABBBAABAAAAAAAAABBBBBBBAABABBABBABAABBAAAABABAAABAABAABBBBBABBBBBAABBBAABAABAABAAABAABBBBABAABBABABAAAABBBAAAABBBABABABBAABAABABABABAABBABABAABBBABBABAAABBABABBAABBAAABAABAABBBAAABBBBAAABBABBABBBBABBAABBABAAAAAABBBBAABBABBBBBBABBABAAABABBBAAAAAABBBAABAAABBAABAAABBAAABAABABBABABBBAAABBAAABABBAAAAABBAABBBBABABAAAABBBABBBAAAAABBAABBBBAABBBBBBAABABBBAABBAABAAABAABBAABBABABBBBABABAAAABABBAABABAABAABAABBAABBBABABBBABAAABAABBAABBBABAABBBBBABB"
输出:487
预期结果:477
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:12:10 | 显示全部楼层
fan1993423 发表于 2020-2-13 23:15
这个删除前面两个B最后两个A,不就是A开头,B结束,中间有AB的字符串了吗?A...AB...B到底是什么意思

字符串前面有若干个 A,后面有若干个 B,所有 A 必须在 B 的前面,可以没有 A 或 B
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:13:41 | 显示全部楼层
fan1993423 发表于 2020-2-13 23:19
是这个意思嘛? @zlzlt

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:14:17 | 显示全部楼层
kinkon 发表于 2020-2-14 01:05
塔大师的解法,稍微调整,应该可以快一点。

或者这样,减少一行代码更直观些

可以,251 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:15:44 | 显示全部楼层


输入以下数据出错
"BBAABAABBAAAAABAABBABABABABAABBAABABAAABABBBABBABAAAABAABAABBBBBABAABABBBBAAABBBAABAABAABBBABBABBBBABABBBABAAAAAABBBAABBBBABABBBAABABABAAAABBAABAAABAABABAAAAAABAAABBAAABBAAAABBAAABAAAAABBBABBABBBAABBBBAAAAAABBBABBABABBBBBABAABAAABBAABAABBBBBBAAABAABABAAAABAABAAABABBABBAAAABBABABBABABBBBABABBBAABAAAAABAABABABBBABAAABBAAABBBBBBBABAAAABAAAABBAAAABABAABBAABBBBBBAABBBBAABABBBBBAAABBAABBBBBAAAABABAABABBAAABAAABABABBAABAABBAAAABBBBAAAAAAABBABAABBBAABABBBBBABABAAAABAAAABAABBABABBBBAABAABBAABBBAAABBABABABBAABBAAAABABBBAABAAABBABABBBABABABABBAAABBBBAABAABAAABAAABAAABBBAABAAAAAAAAABBBBBBBAABABBABBABAABBAAAABABAAABAABAABBBBBABBBBBAABBBAABAABAABAAABAABBBBABAABBABABAAAABBBAAAABBBABABABBAABAABABABABAABBABABAABBBABBABAAABBABABBAABBAAABAABAABBBAAABBBBAAABBABBABBBBABBAABBABAAAAAABBBBAABBABBBBBBABBABAAABABBBAAAAAABBBAABAAABBAABAAABBAAABAABABBABABBBAAABBAAABABBAAAAABBAABBBBABABAAAABBBABBBAAAAABBAABBBBAABBBBBBAABABBBAABBAABAAABAABBAABBABABBBBABABAAAABABBAABABAABAABAABBAABBBABABBBABAAABAABBAABBBABAABBBBBABB"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-14 15:16:45 | 显示全部楼层

解答错误

输入:
"BBABABBBABABABBBABABABAABBBBABAABBBBABABBBBABBAABBBABBBBABBABAAABBBABAABAAAAAABABAABABBAABBBABBABAAAAAABBBBAAAAAAABBBBAABAABAABABABAABBAAABBAABBBBABBBBAAAABABBBBBBABBBBBAABAAAAAABABABBAABBABBABAABABABABABABBAAABBBBBBBBABBABABBABBBBBBBABBBBAABBBAABBAABBABAAABABBAAAAAAAABBAAABAAABBAAABBABBBAAABBBBBABABBABBBBBABBBBBAAAAAABBAABABAAABABBAAAABBBBBAAAAAABBAAABAABAABBABBBBAABABBAABAAAAAAAAABAABBBBABBBBBAABABABBBABBAABBBAAAABABABBBABAABBBBABAABABAAABBABBBBBABBBBBABBBAABABBAABBBBAABABAABBBAABABBBAAAABAAAABBBAAABAABAABAAAAAAABBBABABBBBABBABBBBABAABABBABABBBABBABBAAAABAABBBBABAABABBBABBBAABBBBBBBBBABAAAABAAAAAABABAABAABBAABAAAAAABBBBBBAABBBBBAAAAAAAABBAAAABAAABBAABAABAABAAAABAAAAABABBAABAABAABAAAABABABABBAABBBAABAAABBABABAAABBBBBABBBAABBBABBBABBBABABBBBBAAAABAABBBBBAABABBAABBABBABBBABBBABBBBABAABBAAAAABBAAAABABBABBBBBAABBBBBAABBBBBABBBABBBBABABAAABBABABAAAAAABABAABBABBABABAABBBBABABBAAAABBBABABBBBABBBAAABAAAAABAAABBABBBBAAAABBBBABBBBBBAABABBBBAABBABAABBAABBBABAAAABABBBAAAABAABABBABBBBBAABBBBABBBAA"
输出:476
预期结果:475
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表