[小米]2015小米校招之回文数判断
【题目】
大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。
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; }
求有关回文的笔试题,可以给我发个链接,谢谢......
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。