zoukankan      html  css  js  c++  java
  • NOJ 回文回文!

    回文回文!

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
    总提交 : 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.
    ");
            else
                printf("Not Palindrome.
    ");
        }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    python基础知识0-5(单双向队列)
    python基础知识0-4
    python函数篇0-1
    面试题17:合并两个排序的链表
    面试题16:反转链表
    面试题15:链表中倒数第k个结点
    面试题14:调整数组顺序使奇数位于偶数前面
    面试题13:在O(1)时间删除链表结点
    面试题12:打印1到最大的n位数
    面试题11:数值的整数次方
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965465.html
Copyright © 2011-2022 走看看