mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-04-12 01:00:13 -04:00
2.1 KiB
2.1 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5e6dd14797f5ce267c2f19d0 | Conway-Folge | 1 | 385277 | look-and-say-sequence |
--description--
The Look and say sequence is a recursively defined sequence of numbers.
Definition von Sequenzen
- Take a decimal number
- Look die Zahl an und gruppiere die aufeinanderfolgenden Ziffern der gleichen Ziffer.
- Say die Zahl, von links nach rechts, Gruppe für Gruppe; wie viele von dieser Ziffer gibt es - gefolgt von der gruppierten Ziffer.
Ein Beispiel:
- Starting with the number 1, you have one 1 which produces 11
- Beginnend mit 11, hast du zwei 1'en. z.B.: 21
- Beginnend bei 21, hast du eine 2, dann eine 1. z.B.: (12)(11) das zu 1211 wird
- Beginnend mit 1211, hast du eine 1, eine 2, dann zwei 1'en. z.B.: (11)(12)(21) das zu 111221wird
--instructions--
Schreibe eine Funktion, die eine Zeichenfolge als Parameter akzeptiert, diese verarbeitet und die resultierende Zeichenfolge zurückgibt.
--hints--
lookAndSay sollte eine Funktion sein.
assert(typeof lookAndSay == 'function');
lookAndSay("1") sollte einen String zurückgeben.
assert(typeof lookAndSay('1') == 'string');
lookAndSay("1") sollte "11" zurückgeben.
assert.equal(lookAndSay('1'), '11');
lookAndSay("11") sollte "21" zurückgeben.
assert.equal(lookAndSay('11'), '21');
lookAndSay("21") sollte "1211" zurückgeben.
assert.equal(lookAndSay('21'), '1211');
lookAndSay("1211") sollte "111221" zurückgeben.
assert.equal(lookAndSay('1211'), '111221');
lookAndSay("3542") sollte "13151412" zurückgeben.
assert.equal(lookAndSay('3542'), '13151412');
--seed--
--seed-contents--
function lookAndSay(str) {
}
--solutions--
function lookAndSay(str) {
return str.replace(/(.)\1*/g, function(seq, p1) {
return seq.length.toString() + p1;
});
}