Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sprint4.tasks.H
- fun main() {
- val first = readln().strangeMap()
- val second = readln().strangeMap()
- if (first == second) println("YES")
- else println("NO")
- }
- private fun String.strangeMap(): Int {
- // Общая идея: абстрагироваться от конкретных символов.
- // составить список встречаемых символов, но замапленных на порядковый номер встречи в строке
- // хранит в себе маппинг символов на число
- val mapping = mutableMapOf<Char, Int>()
- // Сюда добавляем смапленные (абстрагированные) символы
- val res = mutableListOf<Int>()
- // хранилище следующего добавляемого маппера
- var nextMapper = 0
- for (ch in this) {
- // если буква ещё не встречалась, добавляем в маппинг
- mapping.putIfAbsent(ch, nextMapper++)
- //d результат добавляем маппер символа
- res.add(mapping[ch]!!)
- }
- //сам порядок нам не важен, достаточно сравнить хешкоды
- return res.hashCode()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement