Сложность: easy
Запутанное число - это число, которое при повороте на 180 градусов становится другим числом, каждая цифра которого действительна. Мы можем повернуть цифры числа на 180 градусов, чтобы получить новые цифры. Когда 0, 1, 6, 8 и 9 поворачиваются на 180 градусов, они становятся 0, 1, 9, 8 и 6 соответственно.
При повороте на 180 градусов 2, 3, 4, 5 и 7 становятся недействительными. Обратите внимание, что после поворота числа мы можем игнорировать ведущие нули. Например, после поворота 8000 мы получим 0008, которое считается просто 8. Если задано целое число n, верните true, если это запутанное число, или false в противном случае.
Пример:
Input: n = 6
Output: true
👨💻 Алгоритм:
1⃣Преобразуй число в строку для удобства работы с его цифрами.
Используй словарь для хранения соответствий цифр при повороте на 180 градусов.
2⃣Пройди по цифрам числа, проверяя, что все цифры действительны и заменяя их на соответствующие при повороте.
3⃣Проверь, что перевернутая строка отличается от исходной.
😎 Решение:
public class Solution {
public bool IsConfusingNumber(int n) {
string nStr = n.ToString();
Dictionary<char, char> rotationMap = new Dictionary<char, char> {
{'0', '0'}, {'1', '1'}, {'6', '9'}, {'8', '8'}, {'9', '6'}
};
StringBuilder rotatedStr = new StringBuilder();
foreach (char ch in nStr) {
if (!rotationMap.ContainsKey(ch)) {
return false;
}
rotatedStr.Insert(0, rotationMap[ch]);
}
return rotatedStr.ToString() != nStr;
}
}Ставь 👍 и забирай 📚 Базу знаний