spamsink: (Default)
[personal profile] spamsink
На давно любимом сайте - очередная задачка:

Возьмем, скажем, строку "CABACB" - в ней между буквами А - один символ, между буквами В - два символа, а между буквами С - три. Если увеличивать количество разных букв, то без пробела/дефиса не обойтись. Например, для пяти букв вариантом ответа будет "ADAEC-DBCEB".

ACADECB-DBE
ADACEBDCB-E
ADAEC-DBCEB
AEABCDBEC-D
AEA-CDBECBD
AEA-DBCEBDC
BCDBECADA-E
B-DBECADACE
B-EBDACAEDC
CAEACDB-EBD
C-EBCDBAEAD


Требуется найти строку, в которой имеется по паре каждой буквы латинского алфавита и не более одного дополнительного символа, т. е. длиной 52 или 53 символа.

Раз они там так спрашивают, то надо, значит, писать программу. Как и положено программисту, я ленив и нетерпелив, поэтому меня хватило только на программу из пяти строк (190 байт), которая выдала результат секунд через 5, если не ошибаюсь (а если ошибаюсь, то через 10), но в таком виде, что пришлось писать еще одну программу, переводящую числа в буквы.

Внимание, вопрос: на каком языке я написал программу?

Ради интереса я попытался изменить программу, чтобы она нашла лексикографически первый из возможных ответов. Попытка искать по шаблону ABACBDECFGDHEI.F.G..H..I... пока к успеху не привела. По шаблону ABACBDECFGDHE..F.G..H... находится много, но буква, следующая после второго E, обычно ближе к концу алфавита.

Date: 2017-05-01 09:23 am (UTC)
mtve: (Default)
From: [personal profile] mtve
на перле же :)

а слабо найти строку где минус посередине?

c 1-м мая!

Profile

spamsink: (Default)
spamsink

June 2017

S M T W T F S
    1 23
4 5 678910
111213 141516 17
18 1920 21 222324
252627282930 

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 28th, 2017 05:11 am
Powered by Dreamwidth Studios