電子表格列的標號
阿新 • • 發佈:2020-12-10
技術標籤:Python演算法實戰python人工智慧軟體測試
Spreadsheet Columns
電子表格列的標號
問題描述
在很多電子表格軟體中,列的標號都是用字母的組合表示的。例如第一列到第26列分別用字母 A-Z 表示。從 27 列開始,用 AA, AB, …, ZZ, AAA 等表示。給定一個整數表示列數,按照上述規則,輸出其列號。
測試樣例
# Input:
1
# Output:
A
# Input:
28
# Output:
AB
# Input:
676
# Output:
YZ
內容首發於微信公眾號IT資訊教室,如果您想學習更多AI相關的技能,歡迎搜尋關注或微信掃描下方二維碼關注~~
參考程式碼
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ---------------------
# O(logn) time|O(1) space
# ---------------------
# 1 -> A, 26 -> Z
# 例如給定整數 N = 28,首先取 (28-1) 除以 26 的餘數,商為 1,餘數為 2。
# 2 -> B。然後更新 N 為 1(商)。
# 取 (1-1) 除以 26 的餘數,商為 0,餘數為 1。
# 1 -> A。因為商為 0,程式結束。
# 輸出為 'AB'
def columnName (num):
result = ''
while num > 0:
# chr 將 ASCII 碼轉為字母,ord將字母轉為 ASCII 碼。
result = chr((num-1)%26 + ord('A')) + result
num = (num-1)//26
return result
# Test Program
print(columnName(1))
print(columnName(28))
print(columnName(676))
print(columnName(4562336))
# A
# AB
# YZ
# IYNZL