Как равномерно размешать строки?

Здравствуйте, есть 2 строки
одна с исходным текстом let a = "hello world" //lenght=10
вторая с невидимыми Unicode символами let b = "........" //lenght=8
нужна какая-то функция или подскажите алгоритм чтобы равномерно "растворить" закодированный текст в исходном
magicfunc(a,b) // => he.l.l.o. .w.o.r.ld
let c = "hi"
magicfunc(c,b) // => ..h....i..
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Предлагаю такой простой алгоритм.

Сначала выясняем, какая строка больше, сравнив length1 и length2. Какая больше, в той и будем растворять.

Например, путь length1 >= length2 (пример с "hello world"). Тогда посчитаем, сколько символов чередовать: x = Math.round(length1/length2). Далее в цикле берём x символов из исходной строки, затем 1 символ из строки с невидимками. И так до конца, пока строки не кончатся. В цикле склеиваем эти кусочки в результирующую строку.

Если же length1 < length2, то всё то же самое, только берём 1 символ из исходной и x из строки с невидимками.

Конечно, если нужно как-то по-особому размазать, то алгоритм нужно будет улучшить немного, но суть будет та же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы