0

[Desafio JS] Atalhos para o Weblogger Brasil

#JavaScript
Raphael Evangelista
Raphael Evangelista

Olá,

Estava tentando entregar o desafio "Atalhos para o Weblogger Brasil", porem sempre apresenta um dos testes fechados com falhas (4/5). Já fiz de duas formas diferentes e realmente estou sem ideias do que possa estar ocorrendo pra dar esse erro, e como eh um teste fechado, dificulta mais ainda. Executei no VSCode (Node.js) passando strings de teste e aparentemente retorna tudo OK.


Que puder me dar uma luz, fico grato.


Essa foi a primeira forma que fiz:

const swapConsecOccorurences = (arr) => {
  const oldChars = ["_", "*"];
  const newChars = ["i", "b"];
  let firstIdx,
    secondIdx = undefined;
  for (let i = 0; i < oldChars.length; i++) {
    while (true) {
      arr.findIndex((el, idx) => {
        if (el === oldChars[i]) firstIdx = idx;
        return el === oldChars[i];
      });
      arr.findIndex((el, idx) => {
        if (el === oldChars[i] && idx != firstIdx) secondIdx = idx;
        return el === oldChars[i] && idx != firstIdx;
      });
      if (firstIdx === undefined && secondIdx === undefined) break;


      arr[firstIdx] = `<${newChars[i]}>`;
      arr[secondIdx] = `</${newChars[i]}>`;
      firstIdx = secondIdx = undefined;
    }
  }
  return arr;
};


let newLine = [];
input = gets();
newLine.push(input);


while (input != "") {
  input = gets();
  newLine.push(input);
}


htmlLine = newLine.map((el) => swapConsecOccorurences(el.split("")));
htmlLine.forEach((el) => console.log(el.join("")));

E essa a segunda:

let newLine = [];
input = gets();
newLine.push(input);


while (input != "") {
  input = gets();
  newLine.push(input);
}


for (let i = 0; i < newLine.length; i++) {
  string = newLine[i];


  letters = string.split("");
  formattedLetters = letters;


  searchingItalicEndTag = false;
  searchingBoldEndTag = false;


  for (let j = 0; j < letters.length; j++) {
    letter = letters[j];
    if (letter === "_") {
      if (!searchingItalicEndTag) {
        formattedLetters[j] = "<i>";
        searchingItalicEndTag = true;
      } else {
        formattedLetters[j] = "</i>";
        searchingItalicEndTag = false;
      }
    }
    //continue a solução
    else if (letter === "*") {
      //continue a solução
      if (!searchingBoldEndTag) {
        formattedLetters[j] = "<b>";
        searchingBoldEndTag = true;
      } else {
        formattedLetters[j] = "</b>";
        searchingBoldEndTag = false;
      }
    }
  }


  console.log(formattedLetters.join(""));
}
0
2

Comentários (1)

0
Juan Camargo

Juan Camargo

17/08/2021 10:49

let entrada=[]


for (i= 1 ; i < 60 ; i++){

  entrada.push(gets())

  if (entrada[i-1=== undefined){

    i =60

    entrada.pop()

  }

}

function replaceAt(stringindexreplace) {

  return string.substring(0, index) + replace + string.substring(index + 1);

}


found =false;

for( j = 0; j < entrada.length;j++){

    for(i=0 ; i < entrada[j].length;i++ ){


      if (entrada[j][i] === '_'){

        if (!found) {

          entrada[j] = replaceAt(entrada[j], i, "<i>")

          found = true

        }

        else{

          entrada[j] = replaceAt(entrada[j], i, "</i>")

          found= false;

        }

      }

  }

}

for( j = 0; j < entrada.length;j++){

    for(i=0 ; i < entrada[j].length;i++ ){


      if (entrada[j][i] === '*'){

        if (!found) {

          entrada[j] = replaceAt(entrada[j], i, "<b>")

          found = true

        }

        else{

          entrada[j] = replaceAt(entrada[j], i, "</b>")

          found= false;

        }

      }

  }

}


for( palavra in entrada){

 console.log( entrada[palavra])

}

"Never changing, just rearranging my life again."

Brasil