列表

详情


NC335. Excel 表列序号

描述

现给你一个仅由大写字母组成的字符串S,表示Excel表格里面的列名称。比如字符串A的序号为1,字符串B的序号为2,字符串Z的序号为26,字符串 AA的序号为27,请输出该字符串的序号。

S在字符串AXFD范围内

示例1

输入:

"C"

输出:

3

说明:

字符串c的序号为3

示例2

输入:

"AB"

输出:

28

说明:

字符串ab的序号为28

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 3ms, 内存消耗: 388KB, 提交时间: 2022-03-12

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S string字符串 
     * @return int整型
     */
    int getNumber(string S) {
        // write code here
        int mul = 1;
        int res = 0;
        for (int i = S.size()-1; i >= 0; --i){
            res += (S[i]-'A'+1) * mul;
            mul *= 26;
        }
        return res;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-03-19

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S string字符串 
     * @return int整型
     */
    int getNumber(string S) {
        // write code here
        int answer=0;
        for(int i=0;i<S.size();i++){
            answer*=26;
            answer+=(S[i]-'A'+1);
        }
        return answer;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-03-16

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S string字符串 
     * @return int整型
     */
    int getNumber(string S) {
        // write code here
        int len = S.size();
        int res = S[len-1]-'A'+1;
        if(len > 1){
            for(int i=len-2; i>=0; i--){
                res += (S[i]-'A'+1) * pow(26, len-1-i);

            }
        }
        
        return res;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-08-06

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S string字符串 
     * @return int整型
     */
    int getNumber(string S) {
        // write code here
        int mul=1;
        int res=0;
        for(int i=S.size()-1;i>=0;--i)
        {
            res+=(S[i]-'A'+1)*mul;
            mul*=26;
        }
        return res;
    }
};

C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-07-04

#include <string.h>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S string字符串 
     * @return int整型
     */
    int getNumber(string S) {
        // write code here
        int num=0,len=S.size();
        for (int i=0;i<len;i++)
        {
            int nn=S[i]-'A'+1;
            num=num*26+nn;
        }
        
        return num;
    }
};

上一题