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

Здравствуйте, есть 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 из строки с невидимками.

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

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

Войти через центр авторизации
Похожие вопросы