[leetcode] 171. Excel Sheet Column Number

来源:互联网 发布:薛之谦唱功知乎 编辑:程序博客网 时间:2024/05/29 03:48

171. 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 -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 

题意:
        此题与问题168. Excel Sheet Column Title 相关联。
        给定一个在Excel表中的列标题,返回其相应的列十进制数。

方法一:

思路:
        此题是问题168. Excel Sheet Column Title 的逆向问题,168. Excel Sheet Column Title 是把10进制转换为26进制,而此题是要把26进制转换为10进制,可以参照2进制转换10进制的思路进行转换。代码如下:

class Solution {public:    int titleToNumber(string s) {        int  total=0;        int n =s.size();        for (int i=n-1;i>=0;i--)        {            total+=((int)s[i]-64)*pow(26.0,(n-i-1));//大写A的ACII码表是65,减去64代表A->1,B->2......        }       return total;     }};

方法二:

思路:
        方法二与方法一类似,但是从字符串的右侧开始累加,方法一是从左侧开始累加,思想都类似2进制转10进制。代码如下:

class Solution {public:    int titleToNumber(string s) {    int ret = 0;    for(int i = 0; i < s.size(); i ++)        ret = ret*26 + (s[i]-'A'+1);    return ret;    }};
0 0
原创粉丝点击