算法39:Excel 表列序号

一、需求

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

例如:

A -> 1

B -> 2

C -> 3

...

Z -> 26

AA -> 27

AB -> 28

...

示例 1:

输入: columnTitle = "A"

输出: 1

示例 2:

输入: columnTitle = "AB"

输出: 28

示例3:

输入: columnTitle = "ZY"

输出: 701

示例4:

输入: columnTitle = "ABC"

输出: 731

提示:

  • 1 <= columnTitle.length <= 7
  • columnTitle 仅由大写英文组成
  • columnTitle 在范围 ["A", "FXSHRXW"]

二、思路分析图

(一)循环方案【O(n)方案】

三、代码

(一)数据初始化

java 复制代码
/**
 * 入口
 * 171、Excel 表列序号
 * 输入:
 * columnTitle = "ABC"
 * 输出:
 * result1 = 731
 * 解释:
 * 1.递归方案
 * 2.O(n)方案
 */
@Test
public void suanfa39()
{
    // 初始化
    String columnTitle = "ABC";

    // 打印
    // 循环方案【O(n)方案】
    int result1 = this.forTitleToNumber(columnTitle);
    System.out.println("result1 = " + result1);
}

(二) 循环方案【O(n)方案】

java 复制代码
/**
 * 循环方案【O(n)方案】
 *
 * @param columnTitle
 * @return
 */
public int forTitleToNumber(String columnTitle)
{
    int sum = 0;

    for (int i = 0; i < columnTitle.length(); i++)
    {
        sum += Math.pow(26, i) * (columnTitle.charAt(columnTitle.length() - 1 - i) - 64);
    }

    return sum;
}

(三)结果图

作者:王子威

四、总结

  • 学习了Excel 表列序号算法
  • 这个应该是168的另一种版本,思路相反,因为有了经验,这个就参考了168的思路逆向写的
  • 算法兴趣+1 总:39
  • 加强了对算法的分析能力
相关推荐
海兰4 分钟前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
技术小结-李爽20 分钟前
【工具】Maven的下载、安装、使用
java·maven
极创信息23 分钟前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
努力成为AK大王29 分钟前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
云烟成雨TD33 分钟前
Agent Scope Java 2.x 系列【10】技能(Skill)
java·人工智能·agent
摇滚侠37 分钟前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
zwenqiyu38 分钟前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz1138 分钟前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Queenie_Charlie38 分钟前
哈夫曼树
数据结构·c++·哈夫曼树
键盘歌唱家1 小时前
Spring AI 入门分享:它和“直接调 API“到底差在哪
java·人工智能·spring