LeetCode简单题之Excel表列名称
題目
給你一個(gè)整數(shù) columnNumber ,返回它在 Excel 表中相對(duì)應(yīng)的列名稱(chēng)。
例如:
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
示例 1:
輸入:columnNumber = 1
輸出:“A”
示例 2:
輸入:columnNumber = 28
輸出:“AB”
示例 3:
輸入:columnNumber = 701
輸出:“ZY”
示例 4:
輸入:columnNumber = 2147483647
輸出:“FXSHRXW”
提示:
1 <= columnNumber <= 2^31 - 1
來(lái)源:力扣(LeetCode)
解題思路
??這是一道進(jìn)制轉(zhuǎn)換題,類(lèi)比常用的10進(jìn)制轉(zhuǎn)2進(jìn)制或者8進(jìn)制等,但是這些進(jìn)制的轉(zhuǎn)換實(shí)際上都是將一個(gè)十進(jìn)制的數(shù)映射到0 ~ 1或者0 ~ 7。而這個(gè)題目將十進(jìn)制的數(shù)字映射到了1 ~ 26,轉(zhuǎn)換的過(guò)程中如果對(duì)26求余的話會(huì)被映射在0 ~ 25 因此,這里就可以用1 ~ 25映射A ~ Y 用0來(lái)映射Z。
class Solution:def convertToTitle(self, columnNumber: int) -> str:temp=''while columnNumber>0:t=columnNumber%26if t==0:t=26temp=chr(t+64)+tempcolumnNumber=(columnNumber-t)//26return temp
??當(dāng)然也可以將 A映射到0 ,B ~ Z映射至 1 ~ 25,這樣的話就和我們通常使用的進(jìn)制轉(zhuǎn)換一致了。
class Solution:def convertToTitle(self, columnNumber: int) -> str:temp=''while columnNumber>0:columnNumber-=1temp=chr(columnNumber%26+65)+tempcolumnNumber//=26return temp
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之Excel表列名称的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode简单题之相对名次
- 下一篇: LeetCode简单题之七进制数