题解 CF61B Hard Work
Posted tearing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 CF61B Hard Work相关的知识,希望对你有一定的参考价值。
Translation
判断字符串 (s_1, s_2, s_3) 能否通过首位相连的方式组成 (t_i)(不考虑大小写)。
Solution
首先,输入 (3) 个字符串 (s_1, s_2, s_3),因为不考虑大小写,所以可以把它们全部都变成小写(这里以小写为例,大写也可以)。
接着,读入一个 (n) ,表示有多少个 (t_i)。
然后,用 while 循环
读入 (t_i),对于每一次循环:
- 转换成小写字母。
- 比对 (6) 中情况(详见代码)。
- 符合输出 ( exttt{ACC})。
- 否则输出 ( exttt{WA})。
Code
string s1, s2, s3, y1, y2, y3;
void work()
{
cin >> s1 >> s2 >> s3;
for(int i = 0; i < s1.size(); i++)
if(s1[i] >= ‘a‘ && s1[i] <= ‘z‘)
y1 += s1[i];
else if(s1[i] >= ‘A‘ && s1[i] <= ‘Z‘)
y1 += char(s1[i] + 32);
for(int i = 0; i < s2.size(); i++)
if(s2[i] >= ‘a‘ && s2[i] <= ‘z‘)
y2 += s2[i];
else if(s2[i] >= ‘A‘ && s2[i] <= ‘Z‘)
y2 += char(s2[i] + 32);
for(int i = 0; i < s3.size(); i++)
if(s3[i] >= ‘a‘ && s3[i] <= ‘z‘)
y3 += s3[i];
else if(s3[i] >= ‘A‘ && s3[i] <= ‘Z‘)
y3 += char(s3[i] + 32);
int n;
scanf("%d", &n);
while(n--)
{
string qwq, qaq;
cin >> qwq;
for(int i = 0; i < qwq.size(); i++)
if(qwq[i] >= ‘a‘ && qwq[i] <= ‘z‘)
qaq += qwq[i];
else if(qwq[i] >= ‘A‘ && qwq[i] <= ‘Z‘)
qaq += char(qwq[i] + 32);
if(y1 + y2 + y3 == qaq) puts("ACC");
else if(y1 + y3 + y2 == qaq) puts("ACC");
else if(y2 + y3 + y1 == qaq) puts("ACC");
else if(y2 + y1 + y3 == qaq) puts("ACC");
else if(y3 + y2 + y1 == qaq) puts("ACC");
else if(y3 + y1 + y2 == qaq) puts("ACC");
else puts("WA");
}
}
以上是关于题解 CF61B Hard Work的主要内容,如果未能解决你的问题,请参考以下文章
题解 CF1290D Coffee Varieties (hard version)
题解 CF1203D2 Remove the Substring (hard version)