Ваша задача сегодня состоит в следующем:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
И выведите наилучший возможный ход в игре, подобной Bejeweled, которая будет соответствовать трем или более буквам, например так (обратите внимание на заглавную B
и C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Полные технические характеристики:
- Входными данными будут
n
строки изn
строчных букв каждая (гдеn
может быть любое число). - Вывод будет лучшим ходом, который вы можете сделать в игре «матч-3», с двумя буквами, которые вы хотите поменять местами.
Совпадения должны иметь следующий приоритет (в этих примерах
.
указывается квадрат, который не имеет значения):Пять-в-ряд
xxYxx ..X..
Сломанный пять в ряд
X.. Yxx x.. x..
или же
.X. xYx .x. .x.
Четыре-в-ряд
xYxx .X..
Три-в-строке
xYx .X.
Вы должны найти совпадение с наивысшим приоритетом и вывести его.
- Если есть несколько совпадений с одинаковым приоритетом, вы можете вывести любое из них.
- Всегда будет хотя бы одно совпадение (ваша программа может прерваться, если совпадений нет, или делать все, что вы захотите).
- Ввод / вывод может быть в любом приемлемом формате (стандартный ввод / вывод, чтение и запись файлов, аргументы функций / возвращаемые значения, диалоговые окна и т. Д.), Но НЕ может быть жестко закодирован (как
x="[insert input here]"
). - Это код-гольф, поэтому выигрывает самый короткий код в байтах. Если по какой-либо причине вы используете какой-либо доступ к сети, все загруженные из сети байты засчитываются в ваш счет.
..x.\nxxYX\n..x.
?Ответы:
Python3.4, 772
(Использование вкладок для отступа вместо пробелов.)
источник
[c for c in l]
вы могли бы просто сделатьlist(l)
.