LYC_ley level
获赞
45
粉丝
7
关注
11
看过 TA
78
哈尔滨工程大学
2022
Java
IP属地:未知
暂未填写个人简介
私信
关注
2021-10-11 23:51
已编辑
哈尔滨工程大学 Java
Str = list(input()) Str1=[] for ch in Str:     Str1.append(ch) Flag=0 if not Str:     print('')     Flag = 1 n = len(Str) dp=[] for i in range(n):     if Str[i]=='a':         dp.append('a')              else:         if not dp&nbs***bsp;dp[-1]=='b':             dp.append('b')         else:      ...
天才少年.:这个题我是这么做的: 根据题意,可以发现字符串里开头出现的b(在第一个a出现前出现的b)与结尾出现的a(最后一个b出现后出现的a)是不可能被化简的。所以所有的字符串都可以被分为三部分:前置b,中间部分(以a开头以b结尾的若干字符),后置a。而中间部分一定可以被最终化简为b。所以我们可以用while从字符串开头遍历寻找第一个不是字符b的位置(计为headB),从结尾逆序遍历第一个不是字符a的位置(计为tailA)。 之后分情况讨论: if headB = 字符串长度 - tailA: 说明整个字符串仅由前置b与后置a组成,不可化简,就直接将这个字符串输出。 else: 答案为:先append所有前置b,再append一个b,最后append所有后置a,然后输出。 ac了所有用例,但是也没有严格的数学证明,如果有错误还请大佬们指正~
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
2021-10-11 21:07
哈尔滨工程大学 Java
有今天刚结束笔试的吗,感觉这次难度高么
牛客346204568号:给的用例都能跑出来,测试就是0%
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
2021-09-17 20:01
哈尔滨工程大学 Java
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务