一、寫在前面的話
筆者是一位參與今年互聯網秋招大軍中的一員,在四月份的時候很幸運地斬獲了騰訊、微軟、京東和vmware四家的實習offer,得到這些offer並非偶然,筆者其實早在去年就開始準備秋招的各項基礎技能了。可惜由於種種原因,筆者在正式秋招開始後,這種潛心準備的轉態開始下滑(在對待感情、找工作以及工作之間,筆者喪失了某種協調的能力,這不能怪任何人,就像之前leader所說的那樣,人生就是需要一些挫折,用以促使自身得以快速成長)。
選擇是人生永恆不變的話題,對於筆者個人而言,即使有些事會影響到自己,但是自己做了選擇就無怨無悔。
雖然秋招的黃金時期已經過了,但是知識是永遠不會過時的,該沉澱的還是要沉澱。
二、數字轉換成excel字母
給定正整數,返回Excel工作表中顯示的相應的列。
【例如】
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ...
三、解題算法 -- accept
對n進行n%26去餘再n/26,得0-25個數,即A-Z,所以n%26=0對應'A',
當n=26時,26%26=0,26/26=1,1%26=1得到的是'AB',不符合,所以應該在每次 * 求餘前對n自減1,即n--。
#define swap(a,b,t) (t=a,a=b,b=t)
/**把字符串做翻轉**/
void reverse_str(char* str, int left, int right)
{
if(str==NULL || left > right) return;
char temp;
while(left<right)
{
swap(str[left], str[right], temp);
left++;
right--;
}
}
char* convertToTitle(int n) {
/**用於存結果字符**/
char* str = (char*)malloc(255*sizeof(char));
int i = 0; //str的遊標
while(n>=1)
{
n--;
str[i++] = n%26+'A';
n = n/26;
}
str[i] = '\0';
reverse_str(str,0,strlen(str)-1);
return str;
}
夢想還是要有的,萬一實現了呢~~~~~ヾ(◍°∇°◍)ノ゙~~~~~~~~~~~