コードテスト練習33:[プログラマー]起動パスワード
ソース:プログラマ 使用言語:JavaScript
イニシャルコード
function solution(s, n) {
var answer = '';
return answer;
}
私が書いたコード
function solution(s, n) {
let answer = [];
let alphabet;
let arr=[];
const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const lower = 'abcdefghijklmnopqrstuvwxyz';
const upLo= upper.concat(upper).split("");
const loUp= lower.concat(lower).split("");
alphabet=s.split("")
for(let i=0;i<alphabet.length;i++){
let alpha = alphabet[i];
if(alpha===" "){
arr.push(" ")
}else if(alpha===alpha.toUpperCase()){
let num1=upLo.indexOf(alpha);
arr.push(upLo[num1+n]);
}else if(alpha===alpha.toLowerCase()){
let num2=loUp.indexOf(alpha);
arr.push(loUp[num2+n]);
}
}
answer=arr.join("")
return answer;
}
他人を解く
function solution(s, n) {
var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var lower = "abcdefghijklmnopqrstuvwxyz";
var answer= '';
for(var i =0; i <s.length; i++){
var text = s[i];
if(text == ' ') {
answer += ' ';
continue;
}
var textArr = upper.includes(text) ? upper : lower;
var index = textArr.indexOf(text)+n;
if(index >= textArr.length) index -= textArr.length;
answer += textArr[index];
}
return answer;
}
🙍♀️ 📝
3つの演算子でもっと簡単に解くことができます!
次の項目を区別します。 indexOf() Stringオブジェクトまたは配列内の指定した値に一致する最初のインデックスを返します。 一致する値がない場合は、-1を返します。 パラメータに値がない場合は、検索する文字列として文字列「undefined」が使用されます。 右に順番に並ぶ。 lastIndexOf() fromIndexから所定の値に一致する部分に逆方向に移動し、最初の相対インデックスを返します。 一致する部分が見つからない場合は、-1を返します。 パラメータにNull値を指定すると、fromIndexが返されます。 findIndex() 指定された判別関数の最初の要素を満たすインデックスを返します。 満足できる要素がない場合は、-1を返します。 コールバック関数がtrueを返すまで、配列内のすべての配列インデックス0。length-1(含む)はコールバック関数を実行します。 これらの要素が見つかった場合、findIndexはすぐに重複するインデックスを返します。 配列に存在しないエントリのインデックスにコールバックを呼び出します。
Reference
この問題について(コードテスト練習33:[プログラマー]起動パスワード), 我々は、より多くの情報をここで見つけました https://velog.io/@gyomni/코딩테스트-연습-33-프로그래머스-시저-암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol