知识点

回文,字符串

思路

先写好判断字符串是否为回文字符串的函数,然后对x依次遍历,设计一个flag避免先导0,然后以'.'为分界,分别得到两边的字符串l与r,再同时判断两者是否都为回文串即可。

代码c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param x string字符串 
     * @return bool布尔型
     */
     int ishuiwen(string s)
     {
        for(int i=0,j=s.size()-1;i<j;i++,j--)
        {
            if(s[i]!=s[j])return 0;
        }
        return 1;
     }
    bool isPalindromeNumber(string x) {
        // write code here
        string l;
        string r;
        int t;
        bool flag=0;//避免先导0
        for(int i=0;;i++)
        {  if(x[i]!=0)flag=1;
            if(x[i]!='.'&&flag)l+=x[i];
            else if(x[i]=='.')
             {
              t=i;
              break;
             }; 

        }
        for(int i=t+1;i<x.size();i++)
        {
            if(x[i]!='.'&&x[i]!='0')r+=x[i];//避免后导0
        }
        if(ishuiwen(l)&&ishuiwen(r))return true;
        return false;
    }
};