Apr. 30th, 2017

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

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

все 11 принципиально различных вариантов )

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

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

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

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

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

Style Credit

Expand Cut Tags

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