• 171. Excel Sheet Column Number


    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 
    本质:26进制转换为10进制
    以下这个例子是错误的,因为比如AB,按字符串的顺序排在第一位的是A而不是B

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

    正确的是:

    class Solution {
    public:
    int titleToNumber(string s) {
    int ret = 0;
    int n=s.size();
    for(int i = 0; i < n; i ++)
    {
    int m=pow(26,n-1-i);
    ret +=(s[i]-'A'+1)*m;
    }
    return ret;
    }
    };

    这样也是对的

    1. class Solution {  
    2. public:  
    3.     int titleToNumber(string s) {  
    4.         int sum = 0;  
    5.         int tmp = 0;  
    6.         for (int i = 0; i < s.length(); ++i) {  
    7.             tmp = s[i] - 'A' + 1;  
    8.             sum = 26 * sum + tmp;  
    9.         }  
    10.         return sum;  
    11.     }  
    12. }; 
  • 相关阅读:
    进制
    流程控制
    运算符
    格式化输出
    数据结构-树的遍历
    A1004 Counting Leaves (30分)
    A1106 Lowest Price in Supply Chain (25分)
    A1094 The Largest Generation (25分)
    A1090 Highest Price in Supply Chain (25分)
    A1079 Total Sales of Supply Chain (25分)
  • 原文地址:https://www.cnblogs.com/baiyuhong/p/5101442.html
Copyright © 2020-2023  润新知