Study 26.
2021-05-17
コード、面接問題の任意の2つの問題
1.整数平方根の判別
問題の説明
任意の正の整数nについて、nがある正の整数xの二乗であるか否かを判断しようとする.
nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.
せいげんじょうけん
nは正の整数であり、5000000000000以上である.
I/O例
n return
121 144
3 -1
I/O例説明
I/O例#1
121は正の整数11の二乗であるため、144に(11+1)を乗算する.
I/O例#2
3は、正の整数の二乗ではないため、-1を返します.
Answer
code
function solution(n) {
let answer = Math.sqrt(n);
if (answer > 0 && Number.isInteger(answer)) {
return Math.pow(answer + 1, 2);
} else {
return -1;
}
}
descriptionMath.sqrt()関数は、数値の平方根Mathを返します.sqrt(x)
Number.isInteger()メソッドは、与えられた値が整数であることを決定します.isInteger(value)
Math.pow()二乗を繰り返す場合はMathを用いる.pow(base,指数)baseは底指数を表す
2.起動パスワード
問題の説明
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
せいげんじょうけん
いくら押してもスペースは空いています.
sは、小文字、大文字、スペースのみから構成されます.
sの長さは8000以下です.
nは1以上,25以下の自然数である.
I/O例
s n result
"AB"1 "BC"
"z"1 "a"
"a B z"4 "e F d"
Answer
code
function solution(s, n) {
let answer = s
.split('')
.map((v) => {
if (v === ' ') return v;
return v.toUpperCase().charCodeAt() + n > 90
? String.fromCharCode(v.charCodeAt() + n - 26)
: String.fromCharCode(v.charCodeAt() + n);
})
.join('');
return answer;
}
descriptionsplit('')
文字列をドラッグして配列を返す
map(()=>{})
アレイ内の各要素の結果を集約してアレイに戻す
.toUpperCase()
大文字に変換
.charCodeAt()
指定されたインデックスのUTF-16コードを表す0~65535の整数を返します.
String.fromCharCode()
UTF-16コードユニットを使用して文字列を作成し、返します.
ex) String.fromCharCode(65, 66, 67) === "ABC"
Reference
この問題について(Study 26.), 我々は、より多くの情報をここで見つけました https://velog.io/@choijw1116/Study-26テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol