--- id: 5e6dd14797f5ce267c2f19d0 title: Successione Look-and-say challengeType: 5 forumTopicId: 385277 dashedName: look-and-say-sequence --- # --description-- La successione [Look and say](https://en.wikipedia.org/wiki/Look and say sequence) è una sequenza di numeri definita ricorsivamente. Definizione della successione Questo diventa il numero successivo della successione. Un esempio: # --instructions-- Scrivi una funzione che accetta una stringa come parametro, la elabora e restituisce la stringa risultante. # --hints-- `lookAndSay` dovrebbe essere una funzione. ```js assert(typeof lookAndSay == 'function'); ``` `lookAndSay("1")` dovrebbe restituire una stringa. ```js assert(typeof lookAndSay('1') == 'string'); ``` `lookAndSay("1")` dovrebbe restituire `"11"`. ```js assert.equal(lookAndSay('1'), '11'); ``` `lookAndSay("11")` dovrebbe restituire `"21"`. ```js assert.equal(lookAndSay('11'), '21'); ``` `lookAndSay("21")` dovrebbe restituire `"1211"`. ```js assert.equal(lookAndSay('21'), '1211'); ``` `lookAndSay("1211")` dovrebbe restituire `"111221"`. ```js assert.equal(lookAndSay('1211'), '111221'); ``` `lookAndSay("3542")` dovrebbe restituire `"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; }); } ```