【题目】
大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。
c++:
bool isPalindromeNumber(long num);
java:
boolean isPalindromeNumber(long num);
【代码】
#include <iostream>
using namespace std;
bool IsPalindromeNumber(long num){
long reverseNum = 0;
long temp = num;
while(temp > 0){
reverseNum = reverseNum * 10 + temp % 10;
temp /= 10;
}
if(reverseNum == num){
return true;
}
else{
return false;
}
}
int main(){
long num;
cin>>num;
bool result = IsPalindromeNumber(num);
if(result){
cout<<num<<" is a palindrome number"<<endl;
}
else{
cout<<num<<" is not a palindrome number"<<endl;
}
return 0;
}
【拓展1】字符串判断回文
bool IsPalindromeNumber(string num){
int len = num.length();
for(int i = 0;i < len/2;i++){
if(num[i] != num[len-1-i]){
return false;
}
}
return true;
}
bool IsPalindromeNumber(string num){
int len = num.length();
for(int i = 0,j = len-1;i < j;i++,j--){
if(num[i] != num[j]){
return false;
}
}
return true;
}
求有关回文的笔试题,可以给我发个链接,谢谢......
相关链接:[百度]2014百度校园招聘之最长回文串