NOJ 回文回文!
回文回文!
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1156 测试通过 : 417
总提交 : 1156 测试通过 : 417
题目描述
回文是一种有趣的现象。英语中单词Palindromes指顺读倒读都一样的词语,比如radar,reviver,repaper,deified,rotator。美国南卡罗来那州查尔斯顿市北部有一片沼泽地,其名字的拼法也采用了这一形式:Wassamassaw,印第安语的意思是“世界上最恶劣的地方。
现在给定一个单词,要求你判断这个单词是不是回文词。
现在给定一个单词,要求你判断这个单词是不是回文词。
输入
输入数据由若干行组成,每行一个单词(长度为[1,256]),仅由字母组成,没有前导或后置的非法字符,单词后紧跟换行回车符。
输出
对于一个单词,如果是回文词,输出“Bingle! Palindrome.”,否则,输出“Not Palindrome.”
样例输入
Wassamassaw
Wassamassam
reviver
aab
wwm
样例输出
Bingle! Palindrome.
Not Palindrome.
Bingle! Palindrome.
Not Palindrome.
Not Palindrome.
提示
对于不知道输入行数的情况,可以用以下方式处理:
char str[buffer_size];
while(gets(str))
{
// Your Code .
}
^_* Good Luck !
分析:简单的字符操作,判断在忽略大小写的情况下是否形成回文,可以通过字符ASCII码差值进行调整。
实现代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> using namespace std; int N=1256+2; int main() { char a[N]; while(gets(a)) { int i,j,len=strlen(a); i=0,j=len-1; int flag=1; //用来标记是否回文 for(;i<=j;i++,j--) { if(a[i]!=a[j]&&a[i]+32!=a[j]&&a[i]!=a[j]+32) { flag=0; break; } } if(flag==1) printf("Bingle! Palindrome.\n"); else printf("Not Palindrome.\n"); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
posted on 2015-04-20 17:09 Tob__yuhong 阅读(214) 评论(0) 编辑 收藏 举报