[プログラマ]中間文字JavaScriptを入力


問題の説明
単語sの中間文字を返す関数を作成します.単語の長さが偶数の場合は、中間の2文字を返します.
せいげんじょうけん
sは、1または100より長い文字列です.
I/O例
sreturn"abcde""c""qwer""we"
基本ソリューションコード
function solution(s) {
    var answer = '';
    return answer;
}
問題を解く
function solution(s) {
    var answer = ''; 
      if (s.length %2 == 0) { //s 의 길이가 짝수일 때 
      answer = s[s.length / 2 - 1] + s[s.length / 2]
        // s 길이의 반 - 1 값에 해당하는 index 값 + s 길이의 반 값에 해당하는 index 값
    } else { //s 의 길이가 홀수일 때
      answer = s[Math.floor(s.length/2)] // s 길이의 반 값에서 반내림한 index 값
    }
    return answer;
}
説明する
問題の説明からヒントを得た.sの長さ(s.length)が偶数の場合(%2=0の場合).
次に、サンプルqwerの長さを2で割った場合、値は2になります.では、「qwer」の2番目のインデックス値は「e」です.(s[2]=「e」)ただし、「w」の値を得るためには、最初のインデックス値が必要であるため、結果のシェアで割った値から1のインデックス値を減算する.
2番目の例「abcde」の長さを2で割った場合、値は2.5になります.中間値を得るためにs[2]の2番目のインデックス値(すなわちsの2番目のインデックス値)が必要であるため、ハーフカット機能を有するMath.floor()関数を使用しました.
関数の使用
  • Array.length:戻り配列の長さ
  • Math.floor():与えられた数値と等しいまたは小さい整数の最大数
  • を返す.
    (出典:https://developer.mozilla.org/ko/)
    別の解釈
    function solution(s) {
        return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
    }
    その他のプールの説明
  • で使用する関数
  • string.substr(start,length):文字列内の特定の位置から、特定の文字数を返す文字
  • Math.Ceil():整数は、与えられた数値以上の最小数値
  • を返します.
  • ? (条件演算子/3項演算子):
  • condition ? exprIfTrue : exprIfFalse 
    //조건문 ? true일 때 실행할 식 : false 일 때 실행할 식
    (出典:https://developer.mozilla.org/ko/)
  • プール
  • 「qwer」、s.substr(Math.ceil(2)-1,2)->s.substr(1,2)「we」
  • を試してみましょう
  • "abcde"、s.subst(Math.ceil(2.5)-1,1)->s.subst(3-1,1)->s.subst(2,1)->c"
  • を試してみましょう
  • は天才ですか?