文章

145

粉丝

217

获赞

21

访问

84.4k

头像
循环位移 题解:C
P1912 厦门大学2018年机试
发布于2024年3月8日 18:33
阅读数 652

不动两字符串, 直接判断。

#include <stdio.h>
#include <string.h>

int main()
{
	char s1[1000],s2[1000];
	gets(s1);
	gets(s2);
	if(strlen(s1) != strlen(s2)) printf("N\n");//长度不一样,肯定不行
	else
	{
		int flag = 0;
		char *p,*q,*t;
		p = s1;
		while(*p != '\0')
		{
			q = s2;
			t = p;
			while(*p == *q) p++,q++;
			if(*p == '\0' && *q != '\0')//开始s1后面一段与s2前面一段匹配,开始s1前面与s2剩下进行匹配
			{
				p = s1;
				while(p < t)
					if(*p == *q) p++,q++;
				if(p == t && *q == '\0')//s1前面一段与s2剩下一段匹配,结束
				{
					flag = 1;
					break;
				}
			}
			else if(*p == '\0' && *q == '\0')//两字符串一样
			{
				flag = 1;
				break;
			}
			p++;
		}
		if(flag) printf("Y\n");
		else printf("N\n");
	}
			
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发