[programmers]奇妙な文字を作成
5512 ワード
私の答え
function solution(s) {
var answer = '';
let arr = s.split(' ')
for (let i = 0; i < arr.length; i++) {
let word = arr[i]
let newWord = ''
for (let j = 0; j < word.length; j++) {
if (j % 2 === 0) {
newWord += word[j].toUpperCase()
} else {
newWord += word[j].toLowerCase()
}
}
answer += newWord
if (arr[i + 1] || arr[i + 1] === '') answer += ' '
}
return answer;
}
/*
문자열을 공백 한칸을 기준으로 split 하고
각 단어를 순회하면서
단어의 스펠링을 순회 (짝수인덱스 -> 대문자, 홀수인덱스 -> 소문자 처리)
처리한 단어(newWord)를 answer에 더하는데
만약 배열에 다음인덱스가 존재하는 경우에만 공백을 더한다.
이 문제의 포인트는
띄어쓰기가 연속으로 붙어 있을 수 있다는 점
split() 메소드를 사용할 때
빈 문자열 요소가 추가되는 규칙을 찾으면 수월합니다.
아례 예시는 언더바를 띄어쓰기 라고 생각해도 무방합니다.
"_a__b_c".split('_') 는
["", "a", "", "b", "c"] 입니다.
잘 살펴보면
'_'와 다른 요소가 양쪽에 위치해 있지 않은 경우는 두가지 입니다.
'__' 언더바가 두개이상 연속으로 붙어 있는 경우
문자열의 가장 앞에 위치하거나 가장 뒤에 위치하는 경우
이 두가지 상황에서 빈 문자열을 요소로 추가합니다.
*/
問題の説明
文字列sは、1つ以上の単語から構成される.
各単語は1つ以上のスペース文字で区切られます.
各単語の偶数の頭文字は大文字です.
奇数の2番目のアルファベットは、小文字で置換された文字列を返す関数です.解決策を完了してください.
せいげんじょうけん
文字列全体のパリティインデックスではありません.
単語(スペース)に基づいてパリティインデックスを決定する必要があります.
最初のアルファベットは、0をインデックスとして偶数アルファベットとして処理する必要があります.
I/O例
s = "try hello world"
return = "TrY HeLlO WoRlD"
I/O例説明
「try hello world」は3つの言葉です
"try", "hello", "world"
設定します.
各単語の偶数の2番目の文字は大文字です.
奇数の2番目の文字を小文字に変更すると、
“Try”“Hello”“World”
そこで、「Try Hello World」に戻ります.
Reference
この問題について([programmers]奇妙な文字を作成), 我々は、より多くの情報をここで見つけました https://velog.io/@rhdgoehe2/Programmers-이상한-문자-만들기-axrjfmi0テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol