Skip to content

Commit

Permalink
feat: Add solution challenge 03
Browse files Browse the repository at this point in the history
  • Loading branch information
neftdev committed Dec 9, 2021
1 parent ae0a74d commit 3c57a62
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
23 changes: 23 additions & 0 deletions challenge-03/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Descripción

El Grinch está abriendo las cartas que iban a Santa Claus y las está dejando hechas un lío. 😱

Las cartas son una cadena de texto que incluyen regalos y paréntesis ().

Para saber si una carta es válida ✅, debes comprobar que los paréntesis cierran correctamente y que, además, no vayan vacíos.

¡Pero ojo! Porque el Grinch ha dejado llaves { y corchetes [ dentro de los paréntesis que hacen que no sean válidas. Por suerte sólo los ha dejado en medio de los paréntesis...

Ejemplos:

```js
'bici coche (balón) bici coche peluche'; // -> ✅
'(muñeca) consola bici'; //

'bici coche (balón bici coche'; // -> ❌
'peluche (bici [coche) bici coche balón'; // -> ❌
'(peluche {) bici'; // -> ❌
'() bici'; //
```

Crea una función que pasándole el texto de la carta, devuelva true si es válida y false si no lo es. ¡Y acaba con la travesura del Grinch!
21 changes: 21 additions & 0 deletions challenge-03/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
export default function isValid(letter) {
let parenthesisCounter = 0;
let characterCounter = 0;
let character;
const length = letter.length;
for (let i = 0; i < length; i++) {
character = letter[i];
if (parenthesisCounter > 0 && character === ' ') {
return false;
} else if (character === ')') {
parenthesisCounter -= 1;
if (characterCounter === 0) return false;
characterCounter = 0;
} else if (character === '(') {
parenthesisCounter += 1;
} else if (parenthesisCounter > 0) {
characterCounter += 1;
}
}
return parenthesisCounter === 0;
}

0 comments on commit 3c57a62

Please sign in to comment.