diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..f6e2d77 Binary files /dev/null and b/.DS_Store differ diff --git a/Week1/.DS_Store b/Week1/.DS_Store new file mode 100644 index 0000000..596ffd8 Binary files /dev/null and b/Week1/.DS_Store differ diff --git a/Week1/assignments/.DS_Store b/Week1/assignments/.DS_Store new file mode 100644 index 0000000..fcc77f8 Binary files /dev/null and b/Week1/assignments/.DS_Store differ diff --git a/Week1/assignments/armand-collins/Anagrams.js b/Week1/assignments/armand-collins/Anagrams.js new file mode 100644 index 0000000..1af18f9 --- /dev/null +++ b/Week1/assignments/armand-collins/Anagrams.js @@ -0,0 +1,70 @@ +let result = []; + +function getAllSubstrings(str) { + let i, j; + + for (i = 0; i < str.length; i++) { + for (j = i + 1; j < str.length + 1; j++) { + result.push(str.slice(i, j)); + } + } + return result; +} + +function isAnagramSort(str1, str2) { + str1 = str1.split("").sort().join(""); + str2 = str2.split("").sort().join(""); + return str1 == str2; +} + +function isAnagramMap(str1, str2) { + //Anagarms must have the same length + if (str1.length != str2.length) { + return false; + } + var map = new Map(); + for (let i = 0; i < str1.length; i++) { + let val1 = map.get(str1[i]); + if (!val1) { + map.set(str1[i], 1); + } else { + map.set(str1[i], val1 + 1); + } + + let val2 = map.get(str2[i]); + if (!val2) { + map.set(str2[i], 1); + } else { + map.set(str2[i], val2 + 1); + } + } + + //every value in the map should be even. + let entries = map.entries(); + for(let [_,v] of map){ + if(v % 2 !== 0){ + return false; + } + } + return true; + +} + +function anagramCheck(arr) { + let final = []; + let count = 0; + for (let i = 0; i < arr.length; i++) { + for (let j = i + 1; j < arr.length; j++) { + if (isAnagramMap(arr[i], arr[j])) { + final.push(...[arr[i], arr[j]]); + count++ + } + } + } + //return final; + return count +} + +var theString = 'mmom'; +getAllSubstrings('mom'); +console.log(anagramCheck(result))