专栏首页用户画像Leetcode No.171 Excel表列序号

Leetcode No.171 Excel表列序号

题目描述

给定一个Excel表格中的列名称,返回其相应的列序号。

例如,

A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...

示例 1: 输入: "A" 输出: 1

示例 2: 输入: "AB" 输出: 28

示例 3: 输入: "ZY" 输出: 701

解题思路1

字符串遍历,进制转换 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘A’ + 1 因为有 26 个字母,所以相当于 26 进制,每 26 个数则向前进一位 所以每遍历一位则ans = ans * 26 + num 以 ZY 为例,Z 的值为 26,Y 的值为 25,则结果为 26 * 26 + 25=701

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

时间复杂度:O(n)

空间复杂度:O(1)

解题思路2

字符串遍历,进制转换 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘A’ + 1 因为有 26 个字母,所以相当于 26 进制,每 26 个数则向前进一位

每位实际数值为num*26^(位数)

以 ZY 为例,Z 的值为 26*26^1,Y 的值为 25*26^0,则结果为 26*26^1 + 25*26^0=701

class Solution {
    public int titleToNumber(String columnTitle) {
        int len=columnTitle.length();
        int rs=0;
        for(int i=len-1;i>=0;i--){
            char ch=columnTitle.charAt(i);
            rs=rs+(ch-'A'+1)*fun(len-1-i);
        }
        return rs;
    }
    int fun(int n){
        int rs=1;
        while(n>0){
            rs*=26;
            n--;
        }
        return rs;
    }
}

时间复杂度:O(n^2)

空间复杂度:O(1)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 171. Excel 表列序号(swift)

    给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。

    freesan44
  • C#版[击败99.39%的提交] - Leetcode 171. Excel表列序号 - 题解

    在线提交: https://leetcode.com/problems/excel-sheet-column-number/

    Enjoy233
  • ​LeetCode刷题实战171: Excel表列序号

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就...

    程序IT圈
  • LeetCode 171. Excel表列序号(26进制转10进制)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/excel-sheet-column-number ...

    Michael阿明
  • 画解算法 171-Excel表列序号

    https://leetcode-cn.com/problems/excel-sheet-column-number/

    灵魂画师牧码
  • 【leetcode刷题】T189-Excel表列序号

    https://leetcode-cn.com/problems/excel-sheet-column-number/

    木又AI帮
  • LeetCode 168. Excel表列名称

    Michael阿明
  • 图解精选 TOP 面试题 006 | 进制转换

    与其他进制转 10 进制的计算方式相同。我们假设 n 位上的数字为 ,那么该位置所产生的 10 进制数值为:

    江不知
  • 关关的刷题日记87 – Leetcode 171. Excel Sheet Column Number

    关关的刷题日记87 – Leetcode 171. Excel Sheet Column Number 题目 Related to question Excel...

    WZEARW
  • Excel表列序号

    将字符转化为ASCII码,A-Z是连续的,且A为65,所以转换以后减一个65 + 1,值就在1-26里了。

    _kyle
  • Leetcode No.168 Excel表列名称

    1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -...

    week
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    不可言诉的深渊
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    石晓文
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    double
  • Excel导入导出数据库01

    主要分为两部份 1.Excel操作类 1 引入 2 using System.Data.OleDb; 3 using System.IO; 4 ...

    欢醉
  • 力扣题目汇总(反转字符串中的单词,EXCEL表列序号,旋置矩阵)

    小小咸鱼YwY
  • C#实现Excel模板导出和从Excel导入数据

          午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 ? 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.O...

    用户1055830
  • 数据库死锁怎么分析?

    我们为hero表的id列创建了聚簇索引,为name列创建了一个二级索引。这个hero表主要是为了存储三国时的一些英雄,我们向表中插入一些记录:

    Bug开发工程师
  • C#版(击败100.00%的提交) - Leetcode 168. Excel表列名称 - 题解

    在线提交: https://leetcode.com/problems/excel-sheet-column-title/

    Enjoy233

扫码关注云+社区

领取腾讯云代金券