题解 | #牛的回文编号II#
牛的回文编号II
https://www.nowcoder.com/practice/0b576fd673834425878b99c736bb6c34
知识点
回文,字符串
思路
先写好判断字符串是否为回文字符串的函数,然后对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;
}
};