首页 > 其他 > 详细

p81 Excel表列序号(leetcode 171)

时间:2020-04-04 19:06:23      阅读:67      评论:0      收藏:0      [点我收藏+]

一:解题思路

列表题是一个26进制数表示的字符串,其中1到26用A到Z表示。而这个题目的本质就是,让我们把这个26进制数转化为一个10进制数。

1.设置一个base=1,字符串从右向左进行遍历,将当前字母表示的数字乘以base,加入到最后的结果num中,然后将base*26。Time:O(n),Space:O(1)

二:完整代码示例 (C++版和Java版)

C++:

class Solution {
public:
    int titleToNumber(string s) 
    {
        int num = 0;
        long base = 1;
        for (int i = s.size() - 1; i >= 0; i--)
        {
            num += (s[i] - A + 1)*base;
            base *= 26;
        }

        return num;
    }
};

Java:

class Solution {
        public int titleToNumber(String s) 
        {
               int base=1,num=0;
               for(int i=s.length()-1;i>=0;i--)
               {
                   num+=(s.charAt(i)-A+1)*base;
                   base*=26;
               }
               
               return num;
        }
    }

 

p81 Excel表列序号(leetcode 171)

原文:https://www.cnblogs.com/repinkply/p/12632713.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!