シーザーのパスワード
問題の説明
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
せいげんじょうけん
いくら押してもスペースは空いています.
sは、小文字、大文字、スペースのみから構成されます.
sの長さは8000以下です.
nは1以上,25以下の自然数である.
I/O例
charCodeAt()の場合、Stringのインデックスを受信します.
指定されたインデックスを表すUTF-16コードの0から65535までの整数を返します.
FromCharCode()は逆です.
UTF-16コードユニットのシーケンスから文字列が生成され、返されます.
次の画像は、アルファベットの小文字と大文字で整数を返す表です.
小文字
上の表に従って
1.指定された文字列を配列に変換
2.変換した配列をmapでスペースをスペースに戻す
3.スペースでない場合はtoUpperCaseで大文字に変換
4.大文字列に変換されたUTF-16コードが90より大きい場合はZを超え、90より大きい数字については-26を実行する
5.必要な結果値を含む配列.joinを使用して文字列にエクスポート
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
せいげんじょうけん
いくら押してもスペースは空いています.
sは、小文字、大文字、スペースのみから構成されます.
sの長さは8000以下です.
nは1以上,25以下の自然数である.
I/O例
s : "AB"
n : 1
result : "BC"
に答えるString.charCodeAt() / String.fromCharCode()
上記の埋め込み関数を用いて解いた.charCodeAt()の場合、Stringのインデックスを受信します.
指定されたインデックスを表すUTF-16コードの0から65535までの整数を返します.
FromCharCode()は逆です.
UTF-16コードユニットのシーケンスから文字列が生成され、返されます.
次の画像は、アルファベットの小文字と大文字で整数を返す表です.
小文字
上の表に従って
1.指定された文字列を配列に変換
2.変換した配列をmapでスペースをスペースに戻す
3.スペースでない場合はtoUpperCaseで大文字に変換
4.大文字列に変換されたUTF-16コードが90より大きい場合はZを超え、90より大きい数字については-26を実行する
5.必要な結果値を含む配列.joinを使用して文字列にエクスポート
function solution(s, n) {
let arr= s.split('')
return
arr.map((el)=>{
if(el === ' '){
return el
}
else{
return el.toUpperCase().charCodeAt()+n>90 ?
String.fromCharCode(el.charCodeAt()+n-26)
:
String.fromCharCode(el.charCodeAt()+n)
}
}).join('')
}
Reference
この問題について(シーザーのパスワード), 我々は、より多くの情報をここで見つけました https://velog.io/@limuubin/시저암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol