Розумне Сортування Імен Файлів
Ви, можливо, намагалися відсортувати кілька файлів у каталозі за їхніми іменами. Як ви помітили, у старих базових середовищах імена файлів сортуються в ASCII-лексикографічному порядку. Сортування алфавітно-цифрових ASCII-символів виглядає так:
0 < 1 < … < 9 < A < B < … < Z < a < b < … < z
Отже, наступні імена файлів будуть розміщені в такому порядку:
A, A0, A01, A02, A1, A10, A2, AA, AB, Aa, Ab, B, B0, a, a0
Однак, бажане сортування виглядає так:
a, A, a0, A0, A01, A1, A02, A2, A10, Aa, AA, Ab, AB, B, B0
Наше бажане сортування можна формально визначити, вказавши спосіб порівняння двох імен файлів:
1. Якщо два імені файлів точно однакові, вони рівні. В іншому випадку, вони не вважаються рівними!
2. Будь-який максимальний блок послідовних цифр в імені файлу слід вважати одним числом. Отже, ім'я файлу фактично є послідовністю літер і чисел.
3. Два нерівні імені файлів порівнюються у дві фази. Фаза 2 використовується лише якщо порядок двох імен файлів не може бути визначений під час Фази 1.
4. Фаза 1 (м'яке порівняння): Імена файлів порівнюються лексикографічно на основі наступних правил:
a. Числа передують літерам (a1 < aa).
b. Числа з меншими значеннями передують числам з більшими значеннями (a2 < a10).
c. Числа з однаковим значенням не розрізняються на цій фазі.
d. Літери порівнюються без урахування регістру (лише на цій фазі).
5. Фаза 2 (точне/строге порівняння): Імена файлів порівнюються лексикографічно на основі наступних правил:
a. Числа з однаковим значенням (але з різною послідовністю цифр) порівнюються лексикографічно (01 < 1 < 02 < 2 < 10).
b. Нижній регістр кожної літери передує її верхньому регістру (a < A < b < B).
Тепер ви повинні написати метод "compare" для нашого бажаного алгоритму сортування.
Вхідні дані
Кожен тестовий випадок складається з двох рядків. Перший рядок і другий рядок з'являються на першому рядку та другому рядку, відповідно. Обидва рядки є рядками з не більше ніж 255 алфавітно-цифрових символів. Вхід завершується "###", який не слід обробляти.
Вихідні дані
Для кожного тестового випадку виведіть '<', '=' або '>' (без лапок) в одному рядку, як описано нижче.
'<': якщо перший рядок передує другому (в нашому бажаному сортуванні)
'=': якщо два рядки точно однакові
'>': якщо перший рядок слідує за другим (в нашому бажаному сортуванні)