一、需求
给你一个字符串 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 <= 7columnTitle仅由大写英文组成columnTitle在范围["A", "FXSHRXW"]内
二、思路分析图
(一)循环方案【O(n)方案】

三、代码
(一)数据初始化
/**
 * 入口
 * 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)方案】
/**
 * 循环方案【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
 - 加强了对算法的分析能力
 







![golangd\pycharm-ai免费代码助手安装使用gpt4-免费使用--[推荐]](https://img-blog.csdnimg.cn/5c495b2d60d441d0a337152c54086d14.png)











