1029: 【作】【入门】判断是否构成回文
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:55
解决:25
题目描述
输入一串字符,字符个数不超过100,且以"."结束。 判断它们是否构成回文。
输入
输入只有一行,包括一串字符.
输出
输出只有一行.TRUE 或者FALSE
样例输入 复制
12321.
样例输出 复制
TRUE
提示
s=input() s=s[:-1] if s==s[::-1]: print('TRUE') else: print('FALSE')
C/C++提示:
判断对称位置的元素是否相等,只要有1个不等,就不是回文!
循环下标:i=0;i< (strlen(s)-1) / 2;i++归纳找出对称下标:
i=0-> strlen(s)-2
i= 1-> strlen(s)-3
归纳得知:
下标为i的元素,对称下标为strlen(s)-i-2的元素!
假设是回文,循环字符串长度一半,判断对称位置只要有一个元素不等,就不是回文!
#include<bits/stdc++.h> using namespace std; int main(){ char s[110]; int i; bool r = true;//假设是回文 cin>>s; //循环字符串实际长度的一半 for(i = 0;i<(strlen(s) - 1) / 2;i++){ //如果对称位置有一个元素不等,就不是回文 if(s[i] != s[strlen(s) - i - 2]){ r=false; break;//停止循环 } } //判断是否是回文 if(r == true){ cout<<"TRUE"<<endl; }else{ cout<<"FALSE"<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; for(int i=0;i<(s.size()-1)/2;i++) { if (s[i]!=s[s.size()-2-i]) { cout<<"FALSE"; return 0; } } cout<<"TRUE"; return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; for(int i=0,j=s.size()-2;i<j;i++,j--) { if (s[i]!=s[j]) { cout<<"FALSE"; return 0; } } cout<<"TRUE"; return 0; }