森田賢二のleetCodeの使い方、解説、解答を毎日更新しているキャラクター

[leetcode]問題解答と解説。242. Valid Anagram [JavaScript]

[leetcode]問題解答と解説。242. Valid Anagram [JavaScript]

皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。
leetCodeの使い方や解説ではなく実際に問題を解決するために何をしたか
をメモ書きして行きます

私はある決意をして今挑んでいます。
モチベーションを保つためだけにこれをやっています。

では今日のleetCode。
【242. Valid Anagram】の解決策と方法。自分がまず挑戦して
やったことをさらけ出します。

※下にある自分のコードは自分で設けた制限時間内に書けたところまです。

これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。

森田賢二のleetCode
森田賢二のleetCode

[leetcode] 242. Valid Anagram ルール

Given two strings s and t, return true if t is an anagram of s, and false otherwise.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

exampleは実際の問題ページを見てください

[leetcode] 242. Valid Anagram 問題ページ

242. Valid Anagram

[leetcode] 242. Valid Anagram

my code is not good

function isAnagram(s, t) {
    if(s.length !== t.length){
        return false
    }
    const ss = s.toLowerCase()
    const tt = t.toLowerCase()
    let count = 0, si = 0, ti = 0;
    while(si != s.length && ti != t.length){
        if(s[si] !== t[ti]) count++
        si++
        ti++
    }
    if(count === 2) return true
    return false
};

isAnagram("anagram", "nagaram")
// isAnagram("rat", "car")

問題の解釈を間違えていて撃沈しました

[leetcode] 242. Valid Anagram。discussの中の一つの解答例

数ある中からJavaScriptのもので、理解しやすい解説をピックアップしました。
discussから見ればさらにもっと違う方法で真似したくなるものがあるかもしれないですね

JavaScriptでfilterされている、discussはこちらから

242. Valid Anagram

  if(s.length !== t.length) return false
    let map = {}
    for (let ss of s){
        map[ss] = (map[ss] || 0) + 1
    }
    for(let tt of t){
        if(!map[tt]) return false
        map[tt]--
    }
    return true

[leetcode] 242. Valid Anagramをやってみて感想

書き方として

  • (map[ss] || 0) + 1のところ

カテゴリー leetCode