• 回文判断


    题目描述

    回文,英文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;
    }
  • 相关阅读:
    使用cordova开发移动app时用form表单的submit时遇到的问题
    收藏链接
    Hibernate总结
    MyBatis基本应用
    Java中字符串(String)总结
    SpringMVC
    SpringIOC----注解
    栈与堆的区别
    IOS模型
    Java Web容器的启动过程
  • 原文地址:https://www.cnblogs.com/linwx/p/7745710.html
Copyright © 2020-2023  润新知