# 【LeetCode】 171. Excel Sheet Column Number ## Description > 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表格的欄位標題,回傳它對應的欄位數字。 > 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... ## Example: ``` Example 1: Input: "A" Output: 1 Example 2: Input: "AB" Output: 28 Example 3: Input: "ZY" Output: 701 ``` ## Solution * 把它當作一個`26`進制的轉換程式。 * 在數位邏輯中,我們知道 $num_{base(n)} = \sum digit\_number*n^{digit}$。 * 數字等於`位元的數字 * 基底 ^ 位元數`所有位元的總和。 * 所以先把`A-Z`轉換成`1-26`,然後跑每個位元乘上`26^第幾位元`,全部加總就好了。 * 有不懂的可以去看一下`16`進制轉`10`進制等,道理是一樣的。 ### Code ```C++=1 class Solution { public: int titleToNumber(string s) { int sum = 0; for(int i = 0; i < s.length(); i++) { sum += pow(26, i) * (s[s.length() - 1 - i] - 'A' + 1); } return sum; } }; ``` ###### tags: `LeetCode` `C++`