力扣168

编程入门 行业动态 更新时间:2024-10-10 02:24:25

<a href=https://www.elefans.com/category/jswz/34/1766191.html style=力扣168"/>

力扣168

力扣168

解题思路

规律很简单就是26个字母 进行除法和求余
A-Z

AA-AZ

BA-BZ

ZA-ZZ

AAA-AZZ
BAA-BZZ

本质上就是数数【26进制的数数 或者理解成十进制转为26进制】,从A数到Z,然后加1变成AA
即Z+1 = A

除法是为了计算处于第几段A-Z区间
求余是为了确定在A-Z的那个字母

运用divide and conquer的思想,大的数除掉26之后变成小的数 然后递归调用

这里的减一可以理解为 因为A表示1 所以 减1 表示到A的距离

代码

class Solution {
public:string convertToTitle(int columnNumber) {string result = "";if (columnNumber == 0) {return result;}char a = 'A' + ((columnNumber-1)%26);return result += convertToTitle((columnNumber-1)/26) + a ;}
};

常规的做法 先求余 然后整除

class Solution {
public:string convertToTitle(int columnNumber) {string result = "";if (columnNumber == 0){return   result;}while (columnNumber >= 1) {char a = 'A' + (columnNumber-1) % 26;result = a + result;columnNumber = (columnNumber-1) / 26;}return result;}
};

更多推荐

力扣168

本文发布于:2024-02-14 13:24:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763654.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:力扣

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!