Algorithm|奇妙な文字を作成
問題の説明
文字列sは、1つ以上の単語から構成される.各単語は1つ以上のスペース文字で区切られます.各単語の偶数の2番目のアルファベットは大文字で、奇数の2番目のアルファベットは小文字で置換された文字列を返す関数で、解決策を完了します.
せいげんじょうけん
例
nresult"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) {
let answer = '';
let sArr = s.split(' ');
for(let i=0; i<sArr.length; i++){
let stringArr = sArr[i].split('');
for(let j=0; j<stringArr.length; j++){
if(j%2 === 0) stringArr[j] = stringArr[j].toUpperCase() ;
if(j === stringArr.length-1){
answer = answer + stringArr.join('');
}
}
if(i !== sArr.length-1 )answer = answer + ' ';
}
return answer;
}
「文字列sは、1つ以上の単語からなる」そう書いてあります.
すなわち、sは「tryhelloworld」であってもよいし、「tryhelloworld」であってもよい.
すなわち、偶数の2番目の文字を大文字の論理に変更するだけでなく、奇数の2番目の文字を小文字の論理に変換する必要がある.
📍二次試行
function solution(s) {
let answer = '';
let sArr = s.split(' ');
for(let i=0; i<sArr.length; i++){
let stringArr = sArr[i].split('');
for(let j=0; j<stringArr.length; j++){
if(j%2 === 0){
stringArr[j] = stringArr[j].toUpperCase() ;
}else{
stringArr[j] = stringArr[j].toLowerCase() ; // 홀수 -> 소문자
}
if(j === stringArr.length-1){
answer = answer + stringArr.join('');
}
}
if(i !== sArr.length-1 )answer = answer + ' ';
}
return answer;
}
反省点。
I/Oの例を見て問題の答えを判断するのではなく、与えられた問題と制限に基づいて問題を解決しなければならない.
📍私のもう一つの解釈。
function solution(s) {
let answer = s.split(' ').map( word => {
let newWord = '';
for(let i = 0; i<word.length; i++){
i%2 ? newWord+= word[i].toLowerCase() : newWord+= word[i].toUpperCase();
}
return newWord;
}).join(' ')
return answer;
}
Reference
この問題について(Algorithm|奇妙な文字を作成), 我々は、より多くの情報をここで見つけました https://velog.io/@kihyeon8949/Algorithm-이상한-문자-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol