Ctrl K

Подсказка к угадыванию кода

Средняя
Один игрок загадывает строку из цифр code, другой пытается её угадать и называет строку attempt той же длины. В ответ он получает подсказку: - сколько цифр угадано вместе с позицией — назовём их **точными**; - сколько ещё цифр попытки есть в коде, но стоят не на своих местах. Точнее, это наибольшее число оставшихся (не точных) цифр попытки, которые можно переставить так, чтобы они стали точными. Каждая цифра кода засчитывается не более одного раза. Верните подсказку в виде строки "xAyB", где x — число точных цифр, а y — число угаданных не на своём месте. Цифры в code и attempt могут повторяться.
Пример 1
code='2468', attempt='8462' → '2A2B'

На своих местах стоят 4 и 6. Цифры 8 и 2 есть в коде, но не там — итого 2A2B.

Пример 2
code='5500', attempt='0055' → '0A4B'

Ни одна цифра не на месте, но все четыре можно переставить так, чтобы они совпали: 0A4B.

Пример 3
code='112', attempt='211' → '1A2B'

Средняя 1 на месте. Из оставшихся «12» и «21» обе цифры есть в коде, но не на своих местах: 1A2B.

Ограничения
  • 1 ≤ len(code) ≤ 10⁵
  • len(attempt) = len(code)
  • code и attempt состоят только из цифр
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСимволы, сгруппированные по частоте СредняяСамые частые запросы СредняяБез одинаковых соседей СредняяСводка заходов по доменам СредняяСколько слов из фишек Средняя
загружаем Python…
Вход
code='2468', attempt='8462'
Ожидается
'2A2B'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 118 тестов на сервере, включая скрытые.