小顽皮呀 2021-05-07 18:28 采纳率: 50%
浏览 61
已采纳

C语言:字符串的处理

给定一个正整数N和一个由小写英文字母组成的长度N的字符串S。确定该字符串是否是某个字符串的两个副本的连接。也就是说,确定是否存在一个字符串T使S=T+T。如果S是某个字符串的两个副本的连接,则输出Yes;否则,直接输出No。 例如,输入6(回车)abcabc,输出Yes(回车)Let T=abc,and S=T+T。 或者输入4(回车)abac,输出No(回车)结束。

  • 写回答

7条回答 默认 最新

  • 关注
    #include <stdio.h>
    int main() {
        int len,i,judge=0;
        scanf("%d", &len);
        char a[len+1];
        scanf("%s", a);
        if(len%2==0) {
            for(i=0;i<(len/2);i++)
                if(a[i]!=a[(len/2)+i]){
                    judge=1;
                    break;
                }
            if(judge==1)
                printf("No");
            else {
                printf("Yes");
            }
        } else
            printf("No");
        printf("\n");
        return 0;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料