字符循环右移

题目

输入一个字符串,每个字符循环向右移动一位,判断移动后能否与所输入的第二个字符串相匹配

输入说明

anhui
huian

输出说明

Yes

总结
当时用的while循环,导致不好结束,其实长为len的字符串最多经过len次就会恢复到最初状态,也就是说用for循环len次就可以了

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char s1[1000];
    char s2[1000];
    int i;
    int j;
    gets(s1);
    gets(s2);
    int len1 = strlen(s1);
    int len2 = strlen(s2);
    //最多循环len次,恢复原来状态
    for(i=0; i<len1; i++)
    {
        char tmp = s1[len1-1];
        for(j=len1-2; j>=0; j--)
            s1[j+1] = s1[j];
        s1[0] = tmp;
        if(strcmp(s1,s2)==0)
        {
            printf("Yes\n");
            break;
        }
        else
            continue;
    }
    if(strcmp(s1,s2)!=0)
        printf("No\n");
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符串匹配KMP算法详解 1. 引言 以前看过很多次KMP算法,一直觉得很有用,但都没有搞明白,一方面是网上很少有...
    张晨辉Allen阅读 7,073评论 0 3
  • 有一晚,我梦见了天帝。天帝说,既然见了,可圆我一个愿。我说要说真话而不受伤害或者畅所欲言的自由。天帝说,这恐怕不能...
    凌晨九点十分阅读 1,573评论 0 2
  • 生活就是一部现世的哲学。
    拿鸡毛当令箭阅读 2,600评论 0 0