diff --git a/climbing-stairs/Grit03.js b/climbing-stairs/Grit03.js new file mode 100644 index 000000000..37ffd4bba --- /dev/null +++ b/climbing-stairs/Grit03.js @@ -0,0 +1,20 @@ +/** + * @param {number} n + * @return {number} + */ +var climbStairs = function (n) { + const dp = [0]; + + for (let i = 1; i <= n; i++) { + if (i === 1) { + dp[1] = 1; + continue; + } + if (i === 2) { + dp[2] = 2; + continue; + } + dp[i] = dp[i - 2] + dp[i - 1]; + } + return dp[n]; +}; diff --git a/valid-anagram/Grit03.js b/valid-anagram/Grit03.js new file mode 100644 index 000000000..9f0c0f1e5 --- /dev/null +++ b/valid-anagram/Grit03.js @@ -0,0 +1,28 @@ +/** + * @param {string} s + * @param {string} t + * @return {boolean} + */ +var isAnagram = function (s, t) { + const sMap = new Map(); + const tMap = new Map(); + for (const str of [...s]) { + sMap.set(str, (sMap.get(str) ?? 0) + 1); + } + + for (const str of [...t]) { + tMap.set(str, (tMap.get(str) ?? 0) + 1); + } + + if (sMap.size === tMap.size) { + let answer = true; + for (let [str, count] of sMap) { + if (!tMap.get(str) || tMap.get(str) !== sMap.get(str)) { + answer = false; + } + } + return answer; + } + + return false; +};