171. Excel Sheet Column Number*

171. Excel Sheet Column Number*

https://leetcode.com/problems/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 
    ...

Example 1:

Input: "A"
Output: 1

Example 2:

Input: "AB"
Output: 28

Example 3:

Input: "ZY"
Output: 701

C++ 实现 1

把这些字符串表示的数据视为 26 进制的数据.

首先, 每个字符 s[i] 表示的数据大小为 v = s[i] - 'A' + 1, 每向左移动一位, 相当于乘上了 26. 那么, 如果字符串的长度为 N, 那么位于第 i 位的字符表示的数据大小为 v × 2 6 ( N 1 i ) v \times 26^{(N - 1 -i)} .

class Solution {
public:
    int titleToNumber(string s) {
        int sum = 0;
        for (int i = 0; i < s.size(); ++ i) {
            int v = s[i] - 'A' + 1;
            sum += v * int(std::pow(26, s.size() - 1 - i));
        }
        return sum;
    }
};
发布了394 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Eric_1993/article/details/104721590