判断一个字符串是不是回文的字符串
这个问题的话,对于C++来说就是直接使用两个指针前后同时遍历,向中间缩进就可以了,这个是针对字符串而言的,假如是针对一个数字来说呢?让你判断这个数字是不是回文的数字
第一个会想到的就是先把数字转换成字符串,但是要是遇到卡时间复杂度的系数的,这个就有点不行了
考虑下里面一种写法
不得不说这段代码考虑的很全面,每一个细节扣的都很严格,也就是基础很扎实
bool func(int num)
{
if (num < 0)
return false;
int help = 1;
while (num / help > 10)
{
help *= 10;
}
/*
while(help < num)
{
help *= 10;
}
help /= 10;
不这样写的主要原因就是,这样写可能会存在溢出,因为毕竟while循环中最后多乘了一个10
*/
while (num != 0)
{
if (num / help != num % 10) //第一位不等于最后一位的话那么就直接返回0
return false;
num = (num % help) / 10; //将第一位和最后一位去掉,拿到的是最中间的数字
help /= 100;
}
return true;
}