0
点赞
收藏
分享

微信扫一扫

放养但没有完全放养(春季每日一题 2)

一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。

牛文由 放养但没有完全放养(春季每日一题 2)_字符串 个字母 ​​​a​​​ 到 ​​z​​​ 组成,但是当奶牛说牛文时,可能与我们所熟悉的 ​​abcdefghijklmnopqrstuvwxyz​​ 不同,她会按某种特定的顺序排列字母。

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

给定一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母,计算 Bessie 至少唱了几遍完整的牛文字母歌,使得 Farmer John 能够听到给定的字符串。

Farmer John 并不始终注意 Bessie 所唱的内容,所以他可能会漏听 Bessie 唱过的一些字母。

给定的字符串仅包含他记得他所听到的字母。

输入格式
输入的第一行包含 放养但没有完全放养(春季每日一题 2)_字符串 个小写字母,为​​​a​​​到​​z​​的牛文字母表顺序。

下一行包含一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母。

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

数据范围
字符串的长度不小于 放养但没有完全放养(春季每日一题 2)_i++_03 且不大于 放养但没有完全放养(春季每日一题 2)_#include_04

输入样例:

abcdefghijklmnopqrstuvwxyz
mood

输出样例:

3

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

Bessie 至少唱了三遍牛文字母歌。

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

abcdefghijklMnOpqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

const int N = 1010;

char a[30], s[N];
int pos[30];

int main(){

scanf("%s", a);
for(int i = 0; i < 26; i++) pos[a[i]-'a'] = i;

scanf("%s", s);
int n = strlen(s);

int pre = 30;
int res = 0;
for(int i = 0; i < n; i++){

int x = pos[s[i]-'a'];
if(x <= pre) res++;
pre = x;
}

cout << res << endl;

return 0;
}


举报

相关推荐

0 条评论