168. Excel Sheet Column Title
leetcode easy
Task
Дано целое число columnNumber, верните соответствующий заголовок столбца, как он отображается в таблице Excel.
Например:
A -> 1
B -> 2
C -> 3
Z -> 26
AA -> 27
AB -> 28
Пример:
Input: columnNumber = 1
Output: "A"
C# solution
matched/originalpublic class Solution {
public string ConvertToTitle(int columnNumber) {
string ans = "";
while (columnNumber > 0) {
columnNumber--;
ans = ((char)((columnNumber) % 26 + 'A')) + ans;
columnNumber = (columnNumber) / 26;
}
return ans;
}
}C++ solution
auto-draft, review before submit#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public string ConvertToTitle(int columnNumber) {
string ans = "";
while (columnNumber > 0) {
columnNumber--;
ans = ((char)((columnNumber) % 26 + 'A')) + ans;
columnNumber = (columnNumber) / 26;
}
return ans;
}
}Java solution
matched/originalclass Solution {
public String convertToTitle(int columnNumber) {
StringBuilder ans = new StringBuilder();
while (columnNumber > 0) {
columnNumber--;
ans.append((char) (((columnNumber) % 26) + 'A'));
columnNumber = (columnNumber) / 26;
}
return ans.reverse().toString();
}
}JavaScript solution
matched/originalvar convertToTitle = function (columnNumber) {
let ans = "";
while (columnNumber > 0) {
columnNumber--;
ans =
String.fromCharCode((columnNumber % 26) + "A".charCodeAt(0)) + ans;
columnNumber = Math.floor(columnNumber / 26);
}
return ans;
};Python solution
matched/originalclass Solution:
def convertToTitle(self, columnNumber: int) -> str:
ans = ""
while columnNumber > 0:
columnNumber -= 1
ans += chr(columnNumber % 26 + ord("A"))
columnNumber //= 26
return ans[::-1]Go solution
matched/originalfunc convertToTitle(columnNumber int) string {
ans := ""
for columnNumber > 0 {
columnNumber = columnNumber - 1
ans = string(rune((columnNumber)%26+'A')) + ans
columnNumber = (columnNumber) / 26
}
return ans
}Explanation
Algorithm
1️⃣
Инициализация пустой строки ans:
Создайте пустую строку ans, которая будет хранить заголовок столбца.
2️⃣
Циклическое преобразование числа в буквы:
Пока columnNumber больше 0, выполняйте следующие действия:
Вычтите 1 из columnNumber для корректировки индекса (Excel использует 1-индексацию).
Найдите символ, соответствующий остатку от деления columnNumber на 26, и добавьте его в начало строки ans.
Присвойте columnNumber значение от деления columnNumber на 26
3️⃣
Переворот и возврат результата:
Так как символы добавляются в начало строки, то по завершению цикла строка ans содержит заголовок столбца в обратном порядке. Переверните строку ans, чтобы представить её в правильном порядке.
Верните полученный заголовок столбца.
😎