一句话题意
告诉你26个字母用左手敲还是右手敲,给你一个字符串,问是否按照上面的规则是左右手轮换敲的。
分析:
简单的模拟,左手为设为0,右手为1,看是否为01交替。
AC代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char left[100], right[100];
int Find_left(char key)//查找此字母是不是用左手按,是左手按返回1,否则是右手按返回0
{
int i, len = strlen(left);
for (i = 0; i < len; i++)
if (left[i] == key)
return 1;
return 0;
}
int main()
{
int q, data[110], i;
scanf("%s%s", left, right);
char s[110];
scanf("%d", &q);
while (q--)
{
scanf("%s", s);
int len = strlen(s);
for (i = 0; i < len; i++)
data[i] = Find_left(s[i]);
int ans = 1;
for (int i = 1; i < len; i++)//判断data数组是否是01交替,即左右手交替
if (data[i] == data[i - 1])//如果不是交替,则把ans置为0
ans = 0;
if (ans == 1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}