2015年8月10日 星期一

LEET code --Excel Sheet Column Number

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;
}

沒有留言:

張貼留言