题目描述
下周四是某炸鸡店的活动,amiloac想让朋友给他50元买东西吃,但直接说出口却不太好意思。于是他想了个办法:他给了他朋友一段文字,里面包含了一个关键信息了,他希望他的朋友能看得懂。
现在你是amiloac的朋友,他想告诉你的关键信息是“kfccrazythursdayvme50”。为了简化操作,amiloac给了你一行非空且只包含大小写字母与数字的字符串sss,请告诉他关键信息中的字符是否能在s中按顺序一一找到(字符可以不连续,字母不区分大小写),如果能找到,请输出"YES",否则请输出"NO"。
输入描述:
输入的第一行包含一个整数t(1≤t≤10^4),代表样例的数量。 接下来为t组样例,每组样例为一行非空且只包含大小写字母与数字的字符串s,s的长度最多为100。
输出描述:
输出t行,每组样例的输出占一行。 对于每一组样例,如果可以找到关键信息,则输出"YES",否则输出"NO"(不包含引号)。
示例1
输入
3 KfCcRaZyThUrSdAyVmE50 CDKKFCCRAZYTHURSDAYVME50 todayisthursdayvme50kfccrazy
输出
YES YES NO
说明
对于第一个样例,我们能按顺序一一找到找到关键信息,尽管有些字母是大写。
这道题目可以用双指针很简单的写出
以下为本人题解:
#include<bits/stdc++.h>
using namespace std;const int N=10;
int n,op,t;int main()
{
string s1="kfccrazythursdayvme50";
int len1=s1.size();
cin >> t;
while(t--)
{
string s2;
cin >> s2;
int len2=s2.size();
if(len1>len2)
{
cout<<"NO"<<endl;
continue;
}
else
{
int j=0;
for(int i=0;i<len2;i++)
{
if(s2[i]<='Z' && s2[i]>='A')
s2[i]+=32;
if(s2[i]==s1[j])
j++;
}
if(j==len1)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}