168. Excel表列名称 力扣(简单) 组会心态崩了,看了题解
题目描述:
给你一个整数 columnNumber
,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
题源:https://leetcode-cn.com/problems/excel-sheet-column-title/
题解:
https://leetcode-cn.com/problems/excel-sheet-column-title/solution/gong-shui-san-xie-cong-1-kai-shi-de-26-j-g2ur/
模拟
这是一道从 1 开始的的 26 进制转换题。
对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 columnNumber 为 0 即可。
一般性的进制转换题目无须进行额外操作,是因为我们是在「每一位数值范围在 [0,x)」的前提下进行「逢 x 进一」。
但本题需要我们将从 1 开始,因此在执行「进制转换」操作前,我们需要先对 columnNumber执行减一操作,从而实现整体偏移。
代码:
class Solution { public: string convertToTitle(int columnNumber) { string s=""; while(columnNumber>0) { columnNumber--; s=s+(char)('A' + (columnNumber%26)); //s.append(ch); columnNumber/=26; } reverse(s.begin(),s.end()); return s; } };