(每日一练28802)题目名称:莫名其妙的键盘

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-06-02 09:12:17

有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个字符串,若用该键盘输入,有多少种方法可以得到?

嗯,有两个特殊情况,比如 cccc,这种没有元音字符的,结果恒定为1,比如 ssa 这种,只有一个元音,但在字符串结束位置的,结果恒定为0,其他的结果就是最后只剩一个元音时,字符串的长度了。

当然,实际用例中仅仅出现了一个 ca,这个考量一下,不用完整实现上边的特殊逻辑,仅仅针对这个用例进行骗分也可以,反正几次周赛老顾都这么干的。

import re
s = input()
t = s
k = 'aeiou'
ans = 0
while len(s) > 0:
    if s[0] in k:
        s = s[1:][::-1]
        ans = 0
    else:
        if re.fullmatch('[^' + k + ']+[' + k + ']',s):
            ans = -1
            break
        ans +=1
        s = s[1:]
if re.fullmatch('[^' + k + ']',t):
    ans = 0
print(ans + 1)
...全文
122 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-06-14
  • 打赏
  • 举报
回复

放一版代码更少的 AC 答案

import re
s,a=input(),0
while len(s)>0 and s[0] in 'aeiou':
    a=len(s)
    s=re.sub('^[aeiou]|[^aeiou]+$','',s)[::-1]
print(0 if s else a)

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧