--- id: 5e6dd14797f5ce267c2f19d0 title: Послідовність "подивися-і-скажи" challengeType: 5 forumTopicId: 385277 dashedName: look-and-say-sequence --- # --description-- [Послідовність "подивися-і-скажи" ](https://en.wikipedia.org/wiki/Look and say sequence) - це рекурсивна послідовність певних чисел. Визначення послідовності Це число стає наступним у послідовності. Наприклад: # --instructions-- Напишіть функцію, яка приймає рядок в якості параметра, обробляє його, і повертає результат. # --hints-- `lookAndSay` повинен бути функцією. ```js assert(typeof lookAndSay == 'function'); ``` `lookAndSay("1")` повинен повернути рядок. ```js assert(typeof lookAndSay('1') == 'string'); ``` `lookAndSay("1")` повинен повертати `"11"`. ```js assert.equal(lookAndSay('1'), '11'); ``` `lookAndSay("11")` повинен повертати `"21"`. ```js assert.equal(lookAndSay('11'), '21'); ``` `lookAndSay("21")` повинен повертати `"1211"`. ```js assert.equal(lookAndSay('21'), '1211'); ``` `lookAndSay("1211")` повинен повертати `"111221"`. ```js assert.equal(lookAndSay('1211'), '111221'); ``` `lookAndSay("3542")` повинен повертати `"13151412"`. ```js assert.equal(lookAndSay('3542'), '13151412'); ``` # --seed-- ## --seed-contents-- ```js function lookAndSay(str) { } ``` # --solutions-- ```js function lookAndSay(str) { return str.replace(/(.)\1*/g, function(seq, p1) { return seq.length.toString() + p1; }); } ```