プログラマー[レベル1]の奇妙な文字を作成


質問する


文字列sは、1つ以上の単語から構成される.各単語は1つ以上のスペース文字で区切られます.各単語の偶数の2番目のアルファベットは大文字で、奇数の2番目のアルファベットは小文字で置換された文字列を返す関数で、解決策を完了します.

せいげんじょうけん

  • 文字列全体のパリティインデックスではなく、単語(スペース単位)に基づいてパリティインデックスを決定する必要があります.
  • 最初の文字は、0番目のインデックスとして偶数文字でなければなりません.
  • I/O例



    に答える

    function solution(s) {
      let arr = s.split(" ");
      let lengths = arr.map((e) => e.length);
      let answer = [];
      arr.forEach((e, i) => {
        let string = "";
        for (let x = 1; x <= lengths[i]; x++) {
          if (x % 2) {
            string += e[x - 1].toUpperCase();
          } else {
            string += e[x - 1].toLowerCase();
          }
        }
        answer.push(string);
      });
    
      return answer.join(" ");
    }
    分割を基準として配列を作成し、各要素の長さを持つ異なる配列を作成します.foreachでは、長さの配列で展開します.

    別の解釈

    function solution(s) {
      let arr = s.split(" ");
      let answer = [];
      for (let item of arr) {
        answer.push(
          item
            .split("")
            .map((e, i) => ((i + 1) % 2 ? e.toUpperCase() : e.toLowerCase()))
            .join("")
        );
      }
      return answer.join(" ");
    }
    
    もう少し小さくして考えは同じだが、方法は違う.