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

August 2017

S M T W T F S
  1 234 5
67 89101112
13 141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 16th, 2017 03:04 pm
Powered by Dreamwidth Studios