当前位置: 首页 > article >正文

Leetcode171. Excel 表列序号

Every day a leetcode

题目来源:171. Excel 表列序号

解法1:数学

168. Excel表列名称的逆向题目。

本题实质上是特殊的 26 进制。

A ~ Z对应1 ~ 26。

假设 A = 0,B = 1,…,那么 AB = 261 * 0 + 260 * 1。

而这里是A = 1,B = 2,…,那么 AB = 261 * (0 + 1) + 260 * (1 + 1)。

设字符串columnTitle的长度为n,columnTitle[i]为下标为i的字符。

则该字符转换为数值 = pow(26, n - i - 1) * (columnTitle[i] - ‘A’ + 1)。

遍历一次字符串,求和即可。

代码:

/*
 * @lc app=leetcode.cn id=171 lang=cpp
 *
 * [171] Excel 表列序号
 */

// @lc code=start
class Solution
{
public:
    int titleToNumber(string columnTitle)
    {
        int sum = 0;
        int n = columnTitle.size();
        for (int i = 0; i < n; i++)
        {
            sum += pow(26, n - i - 1) * (columnTitle[i] - 'A' + 1);
        }
        return sum;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中n为字符串的长度。

空间复杂度:O(1),只用到了2个辅助变量。


http://www.kler.cn/a/15303.html

相关文章:

  • ChatGpt 能取代人类吗?
  • 如何解决服务器认证失败
  • 喜报 | ScanA内容安全云监测获评“新一代信息技术创新产品”
  • threejs学习随笔(入门篇)
  • ROS第四十三节——定位
  • 【C++】7. auto和nullptr(c++11)
  • ChatGPT国内可用版-国内chatGPT哪个软件好用
  • 经典重装上阵,更好用的中小手游戏鼠标,雷柏V300W上手
  • 临沂大学张继群寄语
  • 京东2023年Q1财报预测:短期增速承压,收入和净利润预测被下调
  • vue3.0 透传 Attribute
  • ChatGPT: 如何利用OpenAI的GPT-3.5构建智能对话助手
  • 1031. 两个非重叠子数组的最大和
  • 嵌入式Linux驱动开发(九)Linux中断
  • 十、ElasticSearch 实战 - 源码运行
  • 懂这3件事情,就能成功实施MES管理系统实现“数字化”工厂
  • 【Shell编程之循环语句与函数】
  • 换肤实现及LayoutInflater原理
  • Linux系统操作案例
  • DFS与BFS总结