171. Excel Sheet Column Number

LeetCode easy оригинал: C# #csharp #easy #hash-table #leetcode #math #string

Дана строка

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.

😎

Вакансии для этой задачи

Показаны активные вакансии с пересечением по тегам задачи.

Все вакансии
Активных вакансий пока нет.