今日碎碎念:
今天沒啥大事就不念叨了职员,默默的等明天回家家~
數(shù)字如何轉(zhuǎn)為26進制的字母?
此題與上一篇的相映的靖榕。
168.Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
貼上電腦寫的一次性AC的代碼:
其中有一個坑一個怪獸:
-
n % 26
的時候兼犯,當結(jié)果為0時,應該是26代替0形葬,且少進一位。需要特別處理驯妄。如果不是測試數(shù)據(jù)恰巧有Z的情況荷并,我還發(fā)現(xiàn)不了呢。第二次提及:%運算為0的情況要重點考慮G嗳印T粗! -
string ans; ans[i] = num[i - 1] + 'A' - 1;
的時候微猖,輸出ans的值是空谈息,長度是0。這是為何呢凛剥?有明白的嗎侠仇?
class Solution {
public:
string convertToTitle(int n) {
int num[100];//存26進制結(jié)果
int i = 0;//num的角標
int len; //num的長度
string ans;
char a;
//化成26進制的int數(shù)組(倒序的)
while( n > 0 ){
if(n % 26){
num[i] = n % 26;
n = n / 26;
}
else{ //如果可以整除26,整除后結(jié)果不應該是0犁珠,應該是26的Z逻炊。同時少進位。
num[i] = 26;
n = n / 26 - 1;
}
i++;
}
len = i;
//倒序給結(jié)果string賦值犁享。為何不能直接把字符付給ans[i]呢余素?
for(int j = 0; j < len; j++){
a = num[i - 1] + 'A' - 1;
ans += a;
i--;
}
return ans;
}
};
Tonight, 買了一堆垃圾食品等著明天上車吃,省的吃泡面的人用氣味饞我~
——End——