Десятичное число можно преобразовать в его шестнадцатеричное представление, сначала преобразовав его в прописную шестнадцатеричную строку, а затем заменив все вхождения цифры '0' на букву 'O', а цифры '1' - на букву 'I'. Такое представление допустимо тогда и только тогда, когда оно состоит только из букв набора {'A', 'B', 'C', 'D', 'E', 'F', 'I', 'O'}. Получив строку num, представляющую десятичное целое число n, верните шестнадцатеричное представление n, если оно допустимо, иначе верните "ERROR".
Пример:
Input: num = "257"
Output: "IOI"
C# решение
сопоставлено/оригинал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++ решение
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 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 решение
сопоставлено/оригинал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 решение
сопоставлено/оригинал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 решение
сопоставлено/оригинал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 решение
сопоставлено/оригинал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⃣Преобразуйте десятичное число в шестнадцатеричную строку в верхнем регистре.
2⃣Замените все вхождения цифры '0' на букву 'O', а цифры '1' на букву 'I'
3⃣Проверьте, что преобразованная строка содержит только допустимые символы. Если это так, верните строку, иначе верните "ERROR".
😎
Вакансии для этой задачи
Показаны активные вакансии с пересечением по тегам задачи.