大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。
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; }
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; }
求有关回文的笔试题,可以给我发个链接,谢谢......
原文地址:http://blog.csdn.net/sunnyyoona/article/details/40350783