5/14 每日一題 (26進位)
Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
Example 1:
Input: columnNumber = 1 Output: "A"
Example 2:
Input: columnNumber = 28 Output: "AB"
Example 3:
Input: columnNumber = 701 Output: "ZY"
Constraints:
1 <= columnNumber <= 231 - 1
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
res=[]
while columnNumber>0:
x=(columnNumber-1)%26
#(因為遇到26時會變成0,所以-1,26才會等於Z, 以0-25 對應到A-Z)
letter=chr(x+65) #chr(65)=A
res.append(letter)
#(最開始的餘數事最低位數的對應值)
columnNumber=(columnNumber-1)//26
#(ex:52對應AZ, 因為餘數在26時會是0所以要-1,控制在0-25的範圍)
#(//26 是為了進入下一位數的計算)
return ''.join(reversed(res))
#[最低位數|中間位數|最高位數]所以要反轉
標籤: leetcode

0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁