[小米]2015小米校招之迴文數判斷
阿新 • • 發佈:2019-02-18
【題目】
大家對迴文串不陌生吧?一個字串從前看和從後看如果一樣的話,就是迴文串,比如“上海自來水來自海上”就是一個迴文串。現在我們的問題來了,把一個數字看成字串,問它是不是一個迴文數?時間複雜度和空間複雜度越低的演算法,得分越高。
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; }
求有關回文的筆試題,可以給我發個連結,謝謝......