171. Excel Sheet Column Number
Дана строка
columnTitle
, представляющая название столбца, как это отображается в Excel. Вернуть соответствующий номер столбца.
Пример:
Input: columnTitle = "A"
Output: 1
C# решение
сопоставлено/оригиналpublic class Solution {
public int TitleToNumber(string s) {
int result = 0;
Dictionary<Char, int> alpha_map = new Dictionary<Char, int>();
for (int i = 0; i < 26; i++) {
Char c = Convert.ToChar(i + 65);
alpha_map[c] = i + 1;
}
int n = s.Length;
for (int i = 0; i < n; i++) {
char cur_char = s[n - 1 - i];
result += alpha_map[cur_char] * (int)Math.Pow(26, i);
}
return result;
}
}
C++ решение
auto-draft, проверить перед отправкой#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 int TitleToNumber(string s) {
int result = 0;
unordered_map<Char, int> alpha_map = new unordered_map<Char, int>();
for (int i = 0; i < 26; i++) {
Char c = Convert.ToChar(i + 65);
alpha_map[c] = i + 1;
}
int n = s.size();
for (int i = 0; i < n; i++) {
char cur_char = s[n - 1 - i];
result += alpha_map[cur_char] * (int)Math.Pow(26, i);
}
return result;
}
}
Java решение
сопоставлено/оригиналclass Solution {
public int titleToNumber(String s) {
int result = 0;
Map<Character, Integer> alpha_map = new HashMap<>();
for (int i = 0; i < 26; i++) {
int c = i + 65;
alpha_map.put((char) c, i + 1);
}
int n = s.length();
for (int i = 0; i < n; i++) {
char cur_char = s.charAt(n - 1 - i);
result += alpha_map.get(cur_char) * Math.pow(26, i);
}
return result;
}
}
JavaScript решение
сопоставлено/оригиналvar titleToNumber = function (s) {
let result = 0;
const alpha_map = {};
for (let i = 0; i < 26; i++) {
alpha_map[String.fromCharCode(i + 65)] = i + 1;
}
const n = s.length;
for (let i = 0; i < n; i++) {
let cur_char = s[n - 1 - i];
result += alpha_map[cur_char] * Math.pow(26, i);
}
return result;
};
Python решение
сопоставлено/оригиналclass Solution:
def titleToNumber(self, s: str) -> int:
result = 0
alpha_map = {chr(i + 65): i + 1 for i in range(26)}
n = len(s)
for i in range(n):
cur_char = s[n - 1 - i]
result += alpha_map[cur_char] * (26**i)
return result
Go решение
сопоставлено/оригиналfunc titleToNumber(s string) int {
result := 0
alpha_map := make(map[rune]int)
for i := 0; i < 26; i++ {
alpha_map[rune(i + 65)] = i + 1
}
n := len(s)
for i := 0; i < n; i++ {
cur_char := rune(s[n - 1 - i])
result += alpha_map[cur_char] * pow(26, i)
}
return result
}
func pow(x int, y int) int {
result := 1
for i := 0; i < y; i++ {
result *= x
}
return result
}
Algorithm
1️⃣
Создайте отображение букв алфавита и их соответствующих значений (начиная с 1).
2️⃣
Инициализируйте переменную-аккумулятор result.
3️⃣
Начиная справа налево, вычислите значение символа в
зависимости от его позиции и добавьте его к result.
😎
Вакансии для этой задачи
Показаны активные вакансии с пересечением по тегам задачи.
Активных вакансий пока нет.