码迷,mamicode.com
首页 > 其他好文 > 详细

回文判断

时间:2017-10-28 00:28:09      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:lin   趣味性   cti   中国   logs   section   ack   return   color   

题目描述

回文,英文palindrome,指一个顺着读和反过来读都一样的字符串,比如madam、我爱我,这样的短句在智力性、趣味性和艺术性上都颇有特色,中国历史上还有很多有趣的回文诗。

那么,我们的第一个问题就是:判断一个字串是否是回文?

思路 : 1.分别从头尾开始扫描,如果字符都相同则为回文,不相同则不是。

      2.从中间开始分别扫描到两边。

1.第一种思路实现代码:

bool IsPalindrome(const char *s, int n){
    if(s==NULL||n<1){
        return false;
    }
    const char *font,*back;
    font = s;
    back = s + n - 1;
     while(font<back){
        if(*font != *back){
            return false;
        }
        ++font;
        --back;
     }
     return true;
}

2.第二种思路实现代码

bool IsPalindrome2(const char *s, int n)
{
     if (s == NULL || n < 1)
     {
         return false;
     }
     const char* first, *second;

     // m定位到字符串的中间位置      
     int m = ((n >> 1) - 1) >= 0 ? (n >> 1) - 1 : 0;
     first = s + m;
     second = s + n - 1 - m;

     while (first >= s)
     {
         if (*first!= *second)
         {
             return false;
         }
         --first;
         ++second;
     }
     return true;
}

 

回文判断

标签:lin   趣味性   cti   中国   logs   section   ack   return   color   

原文地址:http://www.cnblogs.com/linwx/p/7745710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!