1 2 ab ioc ipcad 6 Q 0 2 Q 3 4 C 1 o C 4 b Q 0 2 Q 3 4
Case #1: No No Yes Yes
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
string s[10005], text;
int main()
{
int T;
scanf("%d", &T);
for(int ca = 1; ca <= T; ca++)
{
printf("Case #%d:\n", ca);
int n;
scanf("%d", &n);
char tmp[2000000];
for(int i = 0; i < n; i++)
{
scanf("%s", tmp);
s[i] = (string) tmp;
}
scanf("%s", tmp);
text = (string) tmp;
int q;
scanf("%d", &q);
char op[2];
for(int i = 0; i < q; i++)
{
int l, r;
char ch;
scanf("%s", op);
if(op[0] == 'Q')
{
bool flag = false;
scanf("%d %d", &l, &r);
string tmp;
tmp = text.substr(l, r - l + 1);
for(int i = 0; i < n; i++)
{
if(tmp == s[i])
{
flag = true;
printf("Yes\n");
break;
}
}
if(!flag)
printf("No\n");
}
if(op[0] == 'C')
{
scanf("%d %c", &l, &ch);
text[l] = ch;
}
}
}
} HDU 3973 AC's String (substr 强行匹配)
原文地址:http://blog.csdn.net/tc_to_top/article/details/45653667