字符串应用——回文拼接

任务描述
编写一个程序,判断给定的字符串是否由两个长度至少为2的回文串前后拼接而成。

输入输出要求
输入: 第一行包含一个正整数 n,代表字符串数量。之后 n 行每行一个仅包含小写字母的字符串。
输出: 对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出 "Yes",否则输出 "No"。

代码实现
cpp
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

bool isPalindrome(char ch[]) {
    int len = strlen(ch);
    for (int i = 0; i < len / 2; ++i) {
        if (ch[i] != ch[len - 1 - i]) {
            return false;
        }
    }
    return true;
}

bool canBePalindromeConcatenated(char ch[]) {
    int len = strlen(ch);
    for (int i = 1; i < len - 1; ++i) {
        if (isPalindrome(&amp;ch[0]) &amp;&amp; isPalindrome(&amp;ch[i])) {
            return true;
        }
    }
    return false;
}

int main() {
    int num;
    scanf(&quot;%d&quot;, &amp;num);
    getchar(); // Consume the newline character
    for (int i = 0; i < num; i++) {
        char ch[100000];
        fgets(ch, sizeof(ch), stdin);
        ch[strcspn(ch, &quot;\n&quot;)] = 0; // Remove the newline character
        if (canBePalindromeConcatenated(ch)) {
            printf(&quot;Yes\n&quot;);
        } else {
            printf(&quot;No\n&quot;);
        }
    }
    return 0;
}

总结
代码实现了对字符串的回文判断和拼接判断。通过这次练习,我加深了对字符串操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务