字符串应用——回文拼接
任务描述
编写一个程序,判断给定的字符串是否由两个长度至少为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(&ch[0]) && isPalindrome(&ch[i])) {
return true;
}
}
return false;
}
int main() {
int num;
scanf("%d", &num);
getchar(); // Consume the newline character
for (int i = 0; i < num; i++) {
char ch[100000];
fgets(ch, sizeof(ch), stdin);
ch[strcspn(ch, "\n")] = 0; // Remove the newline character
if (canBePalindromeConcatenated(ch)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
总结
代码实现了对字符串的回文判断和拼接判断。通过这次练习,我加深了对字符串操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
编写一个程序,判断给定的字符串是否由两个长度至少为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(&ch[0]) && isPalindrome(&ch[i])) {
return true;
}
}
return false;
}
int main() {
int num;
scanf("%d", &num);
getchar(); // Consume the newline character
for (int i = 0; i < num; i++) {
char ch[100000];
fgets(ch, sizeof(ch), stdin);
ch[strcspn(ch, "\n")] = 0; // Remove the newline character
if (canBePalindromeConcatenated(ch)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
总结
代码实现了对字符串的回文判断和拼接判断。通过这次练习,我加深了对字符串操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-05 21:58
广西职业师范学院 Java 点赞 评论 收藏
分享
10-29 16:42
门头沟学院 Java 1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下
1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点
2.根据1中的两点准备
3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了
4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题
好好准备,祝你面试顺利 点赞 评论 收藏
分享
