1271. Hexspeak

LeetCode easy original: C# #csharp #easy #leetcode #string
Task text is translated from Russian for the selected interface language. Code is left unchanged.

Десятичное number можно преобразовать в его шестнадцатеричное представление, сначала преобразовав его в прописную шестнадцатеричную строку, а затем заменив все вхождения цифры '0' на букву 'O', а цифры '1' - на букву 'I'. Такое представление допустимо тогда и только тогда, когда оно состоит только из букв набора {'A', 'B', 'C', 'D', 'E', 'F', 'I', 'O'}. Получив строку num, представляющую десятичное integer n, return шестнадцатеричное представление n, если оно допустимо, иначе return "ERROR".

Example:

Input: num = "257"

Output: "IOI"

C# solution

matched/original
public class Solution {
    public string ToHexString(string num) {
        string hexStr = Convert.ToInt64(num).ToString("X").Replace('0', 'O').Replace('1', 'I');
        foreach (char c in hexStr) {
            if (!"ABCDEFIO".Contains(c)) {
                return "ERROR";
            }
        }
        return hexStr;
    }
}

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 ToHexString(string num) {
        string hexStr = Convert.ToInt64(num).ToString("X").Replace('0', 'O').Replace('1', 'I');
        foreach (char c in hexStr) {
            if (!"ABCDEFIO".Contains(c)) {
                return "ERROR";
            }
        }
        return hexStr;
    }
}

Java solution

matched/original
public class Solution {
    public String toHexString(String num) {
        String hexStr = Long.toHexString(Long.parseLong(num)).toUpperCase().replace('0', 'O').replace('1', 'I');
        for (char c : hexStr.toCharArray()) {
            if ("ABCDEFIO".indexOf(c) == -1) {
                return "ERROR";
            }
        }
        return hexStr;
    }
}

JavaScript solution

matched/original
function toHexString(num) {
    let hexStr = parseInt(num, 10).toString(16).toUpperCase().replace(/0/g, 'O').replace(/1/g, 'I');
    for (let char of hexStr) {
        if (!'ABCDEFIO'.includes(char)) {
            return "ERROR";
        }
    }
    return hexStr;
}

Python solution

matched/original
def toHexString(num):
    hex_str = hex(int(num))[2:].upper().replace('0', 'O').replace('1', 'I')
    for char in hex_str:
        if char not in 'ABCDEFIO':
            return "ERROR"
    return hex_str

Go solution

matched/original
import (
    "strconv"
    "strings"
)

func toHexString(num string) string {
    n, _ := strconv.ParseInt(num, 10, 64)
    hexStr := strings.ToUpper(strconv.FormatInt(n, 16))
    hexStr = strings.ReplaceAll(hexStr, "0", "O")
    hexStr = strings.ReplaceAll(hexStr, "1", "I")
    for _, char := range hexStr {
        if !strings.Contains("ABCDEFIO", string(char)) {
            return "ERROR"
        }
    }
    return hexStr
}

Algorithm

1⃣Преобразуйте десятичное number в шестнадцатеричную строку в верхнем регистре.

2⃣Замените все вхождения цифры '0' на букву 'O', а цифры '1' на букву 'I'

3⃣Проверьте, что преобразованная string содержит только допустимые символы. Если это так, return строку, иначе return "ERROR".

😎

Vacancies for this task

Active vacancies with overlapping task tags are shown.

All vacancies
There are no active vacancies yet.