亞馬遜面試題目 最小的回文正整數

2021-06-27 14:26:40 字數 1547 閱讀 9592

題目要求:給定正整數 n,求其 下乙個最小的回文正整數。比如,n=9,則下乙個所求之數為11。又如n=12444,則下乙個所求之數為12521. 

下面給出了兩種實現方法 getfirstbiggerpalindromev2是本博主寫的,而getfirstbiggerpalindrome()是網友寫的。

#include < cstdlib >

#include < cstdio >

#include < cstring >

#include < iostream >

#include < string >

#include < algorithm >

#include < sstream >

using namespace std;

int getfirstbiggerpalindrome(int givenumber) ;

bool odd=true;

int numberdigit=0,middle=0;

sprintf(strnumber,"%d",givenumber);

numberdigit=strlen(strnumber);

cout<<"number="<=3

else

//==9          

else

leftreversestr[index]='\0';

strcpy(finalstr,leftstr);

finalstr[middle-1]=middlenum;

ptr=finalstr + middle;

strcpy(ptr,leftreversestr);

resultnumber=atoi(finalstr);}}

else }}

//even

if(!odd)

leftreversestr[index]='\0';

strcpy(finalstr,leftstr);

ptr=finalstr + middle;

strcpy(ptr,leftreversestr);

resultnumber=atoi(finalstr);

}//leftreverse > right, make directly

else

}cout<<"final number="getfirstbiggerpalindromev2(12456);

getfirstbiggerpalindrome(12320);

getfirstbiggerpalindromev2(12320);

getfirstbiggerpalindrome(12923);

getfirstbiggerpalindromev2(12923);

getfirstbiggerpalindrome(1234);

getfirstbiggerpalindromev2(1234);

getfirstbiggerpalindrome(8);

getfirstbiggerpalindromev2(8);

return 0;

}

面試題之10億正整數問題

全屏閱讀 收藏 10億個正整數,只有其中1個數重複出現過,要在o n 的時間裡面找出這個數,記憶體要盡可能少 小於100m 謝謝absolute同學提出的問題。部分解答 還有沒有完成的部分 首先看一下10億個正整數,正整數可以表示的範圍為1到2的31次方 1。10億也就是1 10 9,2 31次方 ...

面試題之10億正整數問題

10億個正整數,只有其中1個數重複出現過,要在o n 的時間裡面找出這個數,記憶體要盡可能少 小於100m 謝謝absolute同學提出的問題。部分解答 還有沒有完成的部分 首先看一下10億個正整數,正整數可以表示的範圍為1到2的31次方 1。10億也就是1 10 9,2 31次方 2 1024 1...

面試題目任意位數整數減法

任意位數整數減法,雙向鍊錶實現,無法處理負數,如果減數小於被減數,則顯示結果的絕對值 include includetypedef unsigned char byte typedef struct dgt 每一位數字乙個節點 digit,p digit p digit createdigit in...