validAnagram解答
13762 ワード
説明する
Stringでmapを使用して各文字のASCII符号化値を要素の配列として取得する方法
その後sortでソートしてJSON.stringify(a)===JSON.stringgify(b)を用いて配列の値を比較した.
https://all-dev-kang.tistory.com/entry/JavaScript-シナリオ-比較-3つの方法-兄貴の-ソリューション 結果:
O(N)で解くことに成功したが,ベストプラクティスかどうか考えなければならない.
別の解釈文字オブジェクトに、キーとして対応する文字列を入力し、個数を値とします. の2番目の文字列では、アルファベットオブジェクトの対応する文字列の個数をアルファベットオブジェクトから減算し、文字列が0または存在しない場合falseを返します. のオーバーラップループではなく2つのfor文で簡単に問題を解決した. 私は私の答えがもっと好きです.
function validAnagram(str, str2) {
// 접근
// 1. 두 스트링을 모두 아스키 코드로 바꿔서 두 배열에 각각 담는다.
// 2. 두 배열을 sort시킨다.
// 3. 두 배열을 비교한다.
var map = Array.prototype.map;
var a = map.call(str, function(x) {
return x.charCodeAt(0);
});
var b = map.call(str2, function(x){
return x.charCodeAt(0);
})
a.sort();
b.sort();
return JSON.stringify(a)===JSON.stringify(b);
}
console.log(validAnagram('','')); // true
console.log(validAnagram('aaz','zza')); // false
console.log(validAnagram('anagram','nagaram')); // true
console.log(validAnagram('rat','car')); // false
console.log(validAnagram('awesome','awesom')); // false
console.log(validAnagram('qwerty','qeywrt')); // true
console.log(validAnagram('texttwisttime','timetwisttext')); // true
まずは簡単に解けましたStringでmapを使用して各文字のASCII符号化値を要素の配列として取得する方法
var map = Array.prototype.map;
var a = map.call(str, function(x) {
return x.charCodeAt(0);
});
Array.prototype.map.callでは、mapはArray、NodeList、Strで使用できます.その後sortでソートしてJSON.stringify(a)===JSON.stringgify(b)を用いて配列の値を比較した.
配列値比較jsで何を書きますか?
O(N)で解くことに成功したが,ベストプラクティスかどうか考えなければならない.
別の解釈
function validAnagram_(first, second) {
if (first.length !== second.length) {
return false;
}
const letter = {};
for (let i = 0; i < first.length; i++) {
if (!letter[first[i]]) {
letter[first[i]] = 1;
} else {
letter[first[i]] += 1;
}
}
for (let i = 0; i < second.length; i++) {
if (!letter[second[i]]) {
return false;
} else {
letter[second[i]] -= 1;
}
}
return true;
}
Reference
この問題について(validAnagram解答), 我々は、より多くの情報をここで見つけました https://velog.io/@stthunderl/validAnagram-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol