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:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28
原本還在想規律什麼 還跑去EXCEL 看之後到底怎麼排出來
後來突然想到 靠 這不就26進位而已嗎
繞一大圈 直接當作26進位來做就很快了
我算了一下 26進位在int的型態下 應該不會超過7~8位數
所以預先算好這些值,之後直接查表就好了
PS: 寫玩才想起來 明明有內建的可以call pow(26, (s.length() - i))
白癡....
而且 好像也不用需要那個涵式,直接每次*26 就好啦....
---------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | int titleToNumber(char* s) { int num[8]; num[0]=1; for(int i=1;i<8-1;i++){ num[i]=num[i-1]*26; } int size=strlen(s); int ans=0; if(size ==1)return s[0]-'A'+1; for(int i=0;i<size;i++){ ans+=(s[i]-'A'+1)*num[size-i-1]; } return ans; } |
------------------------------------int titleToNumber(char* s) { int len = strlen(s); int num = 0; int GAP = 'A' - 1; for(int i = 0; i < len; ++i) { num = num * 26 + s[i] - GAP; } return num; }
沒有留言:
張貼留言