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;
}