5901 Problem I:【字符串】回文串

题目描述

读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。

输入

一行字符串,长度不超过255。

输出

如果是回文串,输出“YES”,否则输出“NO”。

样例输入

12321

样例输出

YES

思路:

假设字符串str从下标0开始,i位对应len - 1 - i位,只要存在不同,即不是回文数;

因为回文数是正反读都一样的字符串,所以只需要遍历字符串前一半即可,而且因为从0开始,并不需要取到len/2;

代码如下:

#include <cstdio>
#include <cstring>

bool judge (char str[]) {						//判断是否为回文数; 
	int len = strlen (str);			
	for (int i = 0; i < len / 2; i++) {			//len / 2 - 1即完成一半; 
		if (str[i] != str[len - 1 - i])		return false;
	}
	return true;
	
}
 
int main()
{
	char str[256];
	while (~ scanf ("%s", &str)) {
		bool flage = judge (str);
		
		if (flage == true)	printf ("YES\n");
		else 				printf ("NO\n");
	} 

 	return 0;
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页