您现在的位置是:主页 > news > 健康管理咨询公司/南昌seo建站

健康管理咨询公司/南昌seo建站

admin2025/6/8 14:15:58news

简介健康管理咨询公司,南昌seo建站,网站排名提升软件,做网站备案文章目录leetcode168. Excel表列名称方法:模拟思路:代码:Python3:cpp:结果:leetcode168. Excel表列名称 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A2 -…

健康管理咨询公司,南昌seo建站,网站排名提升软件,做网站备案文章目录leetcode168. Excel表列名称方法:模拟思路:代码:Python3:cpp:结果:leetcode168. Excel表列名称 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A2 -…

文章目录

  • leetcode168. Excel表列名称
    • 方法:模拟
      • 思路:
      • 代码:
        • Python3:
        • cpp:
      • 结果:

leetcode168. Excel表列名称

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

    1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB ...

示例 1:

输入: 1
输出: "A"

示例 2:

输入: 28
输出: "AB"

示例 3:

输入: 701
输出: "ZY"

方法:模拟

思路:

本题的思路比较简单,由示例可以看出,这种排列的方式是以26个大写字母为循环的。因此,可以不断的使用n对26取模,得到一个字母,然后对n除以26更新n,重复这个过程,直到n=0。

上面这种方式我们每次得到的字母顺序是倒序的,即先得到最后一个字母,最后得到第一个字母。

下面我们考虑如何得到字母,由题,如果取模之后余数为0,那么应该为’Z’,如果余数为temp,不为0,那么应该为‘A’+temp-1。

还需要考虑的是,如果取模余数为0,对应字母’Z’,但是此时对n的更新需要改变,在原来n = n / 26的基础上n–。

比如,n = 26,整除了,余数为0,对应的第一个字母为’Z’,此时n = n / 26 = 1。如果不减1的话,n = 1还会得出下一个字母’A’,那么答案就会变成’AZ’,因此对于整除的情况,n需要减1。

代码:

Python3:

class Solution:def convertToTitle(self, n: int) -> str:res = ''while n:temp = n % 26 n = n // 26if temp:res = chr(ord('A')+temp-1) + reselse:res = 'Z' + resn -= 1return res

cpp:

class Solution {
public:string convertToTitle(int n) {string res;while (n){int temp = n % 26;n /= 26;if (temp) res.push_back('A'+temp-1);else {res.push_back('Z');n --;}}reverse(res.begin(),res.end());return res;}
};

结果: