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