「世界で闘うプログラミング力を鍛える本」にある問題から。
「ある文字列が、すべて固有であるかどうか判定するアルゴリズムを実装しなさい」
JavaScriptで実装してみた。
function duplicationcheck(str){
//引数として渡された文字列を1文字ずつ分割
let a=str.split('');
//空の配列bを作成
let b=[];
//変数cの初期値
let c=false;
for(let i=0;i<a.length;i++){
//配列bの中に配列a[i]と同じものがあるかどうか判定
c=b.includes(a[i]);
//配列bの先頭に配列a[i]を挿入
b.unshift(a[i]);
//変数cがtrueになっていたらループを抜ける
if(c===true){
console.log('重複あり');
break;
}
}
//繰り返しが終了してもcがfalseのままだったら「重複なし」を出力
if(c===false){
console.log('重複なし');
}
}
細かな説明は、コメントアウト部分に書いた。
大まかな流れとしては、
①引数として文字列を受けとる
②文字列を1文字ずつ分割
③分割した文字を1文字ずつ変数に格納しながら、includesメソッドで重複があるか判定
④重複があれば「重複あり」、最後までなければ「重複なし」を出力。
※自分で考えただけのアルゴリズムなので、これより良い実装方法がある可能性高いです。各自で試行錯誤しながら実装していってください。