[プログラマー]「変な文字を作成する」問題のJavaScriptアルゴリズム


[プログラマー]「変な文字を作成する」問題のJavaScriptアルゴリズム


https://programmers.co.kr/learn/courses/30/lessons/12930

Q.変な文字を作る


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

せいげんじょうけん

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


    sreturn"try hello world""TrY HeLlO WoRlD"

    I/O例説明


    「tryhello world」は、3つの単語「try」、「hello」、「world」から構成されています.各単語の偶数の2番目の文字を大文字に、奇数の2番目の文字を小文字に、すなわち「Try」、「Hello」、「World」に変更します.そこで、「Try Hello World」に戻ります.
  • コード
  • function solution(s) {
        var answer = "";
        const small = Array.from({length:26},((a,i)=> String.fromCharCode(i + 97) ));
        const big = Array.from({length:26},((a,i)=> String.fromCharCode(i + 65) ));
        var arrS = s.split(" ");
        
        arrS.map((a)=> {
            
            for(let i=0; i<a.length; i++){
                
                var index = small.includes(a[i]) ? small.indexOf(a[i]): big.indexOf(a[i]); // 인덱스 찾기 
                
                if(i%2===0) answer += big[index];
                
                else answer += small[index];            
            }
            
            answer += " "           // for문이 끝나면 띄워쓰기 
       
        })
     
        return answer.slice(0,-1);     // 마지막 띄워쓰기 제거 
    }
    
       

    別の解釈

    function solution(s) {
        
        return s.split(' ').map((a)=>a.split('').map((j,i)=>i%2===0?j.toUpperCase():j.toLowerCase()).join('')).join(' ');
    }
    リファレンス
    Array.from()
    Array.from({length: 5}, (v, i) => i); // [0, 1, 2, 3, 4] 
    Array.from({length: 7}, (v, i) => i-3); // [-3, -2, -1, 0, 1, 2, 3]
    charCodeAt/fromCharCode
     var val = "charCodeAt";
     var.charCodeAt(4); // 인덱스 4에 해당하는 C의 아스키코드 67 반환
     var val2  = 111; 
     String.fromCharCode(var2) // 아스키코드 111에 해당하는 문자 'o' 반환  
    toUpperCase()/toLowerCase()
     var a = "ABC abc" ;
    
     a.toUpperCase() ;  // ABC ABC
     a.toLowerCase() ; // abc abc