再战leetcode

再战leetcode ,第1张

171. Excel 表列序号 题目描述


题解

我一开始是用倒着来的,就是直接用 最后面乘与对应的26**index然后将结果相加得到答案。


代码01
class Solution {
    public int titleToNumber(String columnTitle) {
        int ans = 0;
        int num;
        int n = columnTitle.length();
        int index = 0;
        for (int i = n - 1; i >= 0; i--) {
            num = columnTitle.charAt(i) - 'A' + 1;
            ans += num * Math.pow(26, index);
            index++;
        }
        return ans;
    }
}

其实我们是可以用其他来解决,不一定要倒着来,正着来其实也是可以的。



比如我们把一个数字转换成10进制来说。



比如现在有个字符串是“235”
我们把这个字符串转换为10进制的话。



我们就是

    public int revert(String s) {
        int n = s.length();
        int ans = 0;
        for (int i = 0; i < n; i++) {
            int num = s.charAt(i) - '0';
            ans = ans * 10 + num;
        }
        return ans;
    }

同理,我们这里是26进制,转换其实也是差不多。


    public int titleToNumber(String columnTitle) {
        int ans = 0;
        int n = columnTitle.length();
        int num;
        for (int i = 0; i < n; i++) {
            num = columnTitle.charAt(i) - 'A' + 1;
            ans = ans * 26 + num;
        }
        return ans;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/569828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存