zoukankan      html  css  js  c++  java
  • OJ练习30——T125 Valid Palindrome

    判断字符串是否是回文。

    字母、数字都算在内;空串也是回文。

    【思路】

    经典回文,两个指针,一个从前向后遍历,一个从后向前,遇到不是要求字符的就跳过。

    前后指针位置交叉(i>j),则遍历结束。

    特殊的地方在于,包含字母和数字,如果一一排除,代码很繁琐。

    【my code】

    bool isPalindrome(string s) {
            if(s=="")
                return true;
            int length=s.size();
            int i=0,j=length-1;
            while(i<=j){
                //while(!((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))&&i<j)
                while((s[i]==' '||ispunct(s[i]))&&i<j)
                    i++;
                //while(!((s[j]>='a'&&s[j]<='z')||(s[j]>='A'&&s[j]<='Z'))&&i<j)
                while((s[j]==' '||ispunct(s[j]))&&i<j)
                    j--;
                if(i<=j&&((s[i]==s[j])||abs(s[i]-s[j])==32)){
                    i++;
                    j--;
                }
                else return false;
            }
            return true;
        }

    【评价】

    这里用了一个ctype的函数,ispunct(char),当字符是非空格或数字或字母时,返回0,但题目不包括空格,所以要加上。

    另外,i和j的比较要在每一个循环中,否则不满足条件也会继续执行。

    用时16ms。

  • 相关阅读:
    Struts2 Hello World
    Struts2入门(1)
    Struts2_day01
    Java Web Model2实战
    Oracle_day04
    SAP调用外部webservice接口
    通用清账程序
    服务器IDOC文件解析程序
    IDOC接口创建步骤
    SAP 本地发送IDOC
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4458997.html
Copyright © 2011-2022 走看看