题目描述
大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。
c++:
bool isPalindromeNumber(long num);
java:
boolean isPalindromeNumber(long num);
c++:
bool isPalindromeNumber(long num);
java:
boolean isPalindromeNumber(long num);
解题思路
将long转换为字符串,从头和尾向中间扫描即可
代码
/**
* 判断一个数字是否是回文数字
*
* @param num
* @return
*/
public boolean isPalindromeNumber(long num) {
String s = Long.toString(num);
int head = 0, tail = s.length() - 1;
while (head <= tail && s.charAt(head) == s.charAt(tail)) {
head++;
tail--;
}
if (head < tail) {
return false;
}
return true;
}