Розумне Сортування Імен Файлів#6898

Розумне Сортування Імен Файлів

1 секунда
64 мегабайти
Середня

Ви, можливо, намагалися відсортувати кілька файлів у каталозі за їхніми іменами. Як ви помітили, у старих базових середовищах імена файлів сортуються в 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" для нашого бажаного алгоритму сортування.

Вхідні дані

Кожен тестовий випадок складається з двох рядків. Перший рядок і другий рядок з'являються на першому рядку та другому рядку, відповідно. Обидва рядки є рядками з не більше ніж алфавітно-цифрових символів. Вхід завершується "###", який не слід обробляти.

Вихідні дані

Для кожного тестового випадку виведіть '<', '=' або '>' (без лапок) в одному рядку, як описано нижче.

  • '<': якщо перший рядок передує другому (в нашому бажаному сортуванні)

  • '=': якщо два рядки точно однакові

  • '>': якщо перший рядок слідує за другим (в нашому бажаному сортуванні)

Приклади

Приклад 1

Loading
Loading