[プログラマー]「変な文字を作成する」問題のJavaScriptアルゴリズム
12745 ワード
[プログラマー]「変な文字を作成する」問題のJavaScriptアルゴリズム
https://programmers.co.kr/learn/courses/30/lessons/12930
Q.変な文字を作る
文字列sは、1つ以上の単語から構成される.各単語は1つ以上のスペース文字で区切られます.各単語の偶数の2番目のアルファベットは大文字で、奇数の2番目のアルファベットは小文字で置換された文字列を返す関数で、解決策を完了します.
せいげんじょうけん
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
Reference
この問題について([プログラマー]「変な文字を作成する」問題のJavaScriptアルゴリズム), 我々は、より多くの情報をここで見つけました https://velog.io/@dlzagu/프로그래머스-이상한-문자-만들기-문제-자바스크립트-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol