[USACO] Uddered but not Herd-Python

2021 January Contest, Bronze

Problem 1. Uddered but not Herd

一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。牛文由 26 个字母 'a' 到 'z' 组成,但是当奶牛说牛文时,可能与我们所熟悉的 'abcdefghijklmnopqrstuvwxyz' 不同,她会按某种特定的顺序排列字母。

为了打发时间,奶牛 Bessie 在反复哼唱牛文字母歌,而 Farmer John 好奇她唱了多少遍。

给定一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母,计算 Bessie 至少唱了几遍完整的牛文字母歌,使得 Farmer John 能够听到给定的字符串。Farmer John 并不始终注意 Bessie 所唱的内容,所以他可能会漏听 Bessie 唱过的一些字母。给定的字符串仅包含他记得他所听到的字母。

输入格式(从终端/标准输入读入):

输入的第一行包含 26 个小写字母 'a' 到 'z' 的牛文字母表顺序。下一行包含一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母。字符串的长度不小于 11 且不大于 10001000。

输出格式(输出至终端/标准输出):

输出 Bessie 所唱的完整的牛文字母歌的最小次数。

输入样例:
abcdefghijklmnopqrstuvwxyz
mood
输出样例:
3

在这个样例中,牛文字母表与日常的字母表的排列一致。

Bessie 至少唱了三遍牛文字母歌。有可能 Bessie 只唱了三遍牛文字母歌,而 Farmer John 听到了以下被标记为大写的字母。

abcdefghijklMnOpqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcDefghijklmnopqrstuvwxyz

测试点性质:

  • 测试点 2-5 中,牛文字母表与日常的字母表相同。
  • 测试点 6-10 没有额外限制。

=====Analysis=====

我最开始做到这个题的时候给我震惊了,这道题居然如此简单,完全不像是USACO的水平

这道题思路很简答,分三种情况
1. 听到的字母在上一个听到的字母的右边,判定为同一次
2. 3. 听到的是相同的或者是在上一次听到的字母的左边,判定为哼的下一次

然后把所有判定的加起来即可

没什么技术含量的题,不知道USACO出题组怎么想的,一会铜组的难得爆炸,一会又很简单。

=====Code=====

letter = list(input())
heard = list(input())

times = 1
for i in range(1,len(heard)):
    if latter.index(heard[i]) <= latter.index(heard[i-1]):
        times += 1

print(times)

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值