Excel Sheet Column Number
Related to question Excel Sheet Column Title
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
|
|
提示 | 解題應用 |
---|---|
Math | 觀查規律 |
Default:
|
|
解答思路:
這題與先前的一篇 Excel Sheet Column Title 有相關。
這次給你字母要你還原回數字,相較於數字要轉字母會有借位的情況,字母轉回數字就沒有特例了,所以可以放心去直接轉換,如果反而會覺得複雜的話,想成是在做26進位制就容易多了,每26個數字就進一位,所以說每一位的字母要還原回數字時就是26的n次方(位數-1)再乘上該數字(字母),一直將每一位的結果總合到最後一位也就是26的0次方為1再乘上該數字(字母)就大功告成了,跟先前一樣因為要定義A~Z為1~26太麻煩,所以最後就直接將字母轉成ASCII再減64以方便處理。
程式碼解說:
在將字母轉成數字時,先從最後一位開始算起,因為26的0次方為1,所以一開始先用tmp做暫存,接著與字母做相乘,我們直接強制轉成ASCII後減64,每往前一個字母就表示進了一位,所以tmp就要多乘上64,最後將每一位的結果做相加後回傳
|
|
完整程式碼:
|
|
總結:
如果覺得字母轉數字複雜的話,想成是在做26進位制就容易多了,每26個數字就進一位,所以說每一位的字母要還原回數字時就是26的n次方(位數-1)再乘上該數字(字母),一直將每一位的結果總合到最後一位也就是26的0次方為1再乘上該數字(字母)就大功告成了。