171. Excel Sheet Column Number

来源:互联网 发布:淘宝烽火体育店是假货 编辑:程序博客网 时间:2024/06/15 07:54

这道题是要求把excel表格里的字母列号转换成数字列号。

找规律即可。

假设一个字符串由5个字符组成:X4, X3, X2, X1, X0.那么数字列号可以表示为:26^0 * X0 + 26^1 * X1 + 26^2 * X2 + ...

为了方便起见,我先把s倒置了。

class Solution {public:    int titleToNumber(string s) {        int res = 0;        reverse(s.begin(), s.end());        for(int i = 0; i < s.size(); ++i){            int x1 = pow(26, i);            int x2 = s[i] - 'A' + 1;            res += x1 * x2;        }        return res;    }};

不用倒置s也可:

class Solution {public:    int titleToNumber(string s) {        int n = s.size();        int res = 0;        int tmp = 1;        for (int i = n; i >= 1; --i) {            res += (s[i - 1] - 'A' + 1) * tmp;             tmp *= 26;        }        return res;    }};


原创粉丝点击