We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- Algorithms
- Strings
- Making Anagrams
- Discussions
Making Anagrams
Making Anagrams
+ 0 comments JS solution:
function makeAnagram(a, b) { let firstArr = [...a].sort() let secondArr = [...b].sort() let numDel = 0 let i = 0 while (i < firstArr.length) { const first = firstArr[i] const second = secondArr[i] if (first !== second) { numDel++ if (first > second) { secondArr.splice(i, 1) } else { firstArr.splice(i, 1) } } else { i++ } } if (firstArr.length !== secondArr.length) numDel += Math.abs(secondArr.length - firstArr.length) return numDel }
+ 0 comments Js solution
function makingAnagrams(s1, s2) { let s1List = [...s1]; let s2List = [...s2]; let commonItems = 0; for (let item of s1List) { let index = s2List.indexOf(item); if (index !== -1) { s2List.splice(index, 1); commonItems++; } } return (s2.length + s1.length) - (commonItems * 2); }
+ 0 comments Without using Counter()
def makingAnagrams(s1, s2): count = 0 for i in list(set(s1)): if (i not in s2): count = count + s1.count(i) for i in list(set(s2)): if(i not in s1): count = count + s2.count(i) for i in list(set(s1)): if(i in s2): count = count + abs(s2.count(i) - s1.count(i)) return count
+ 0 comments Python Soln Using Counters Intersection
def makingAnagrams(s1, s2): interSection = sum((Counter(s1) & Counter(s2)).values()) return (len(s1) - interSection) + (len(s2) - interSection)
+ 0 comments Java 8
int counter = 0; for (int i = 0; i < s1.length(); i++) { for (int j = 0; j < s2.length(); j++) { if (s1.charAt(i) == s2.charAt(j)) { counter++; // Mark characters as used by replacing them with spaces s1 = s1.substring(0, i) + ' ' + s1.substring(i + 1); s2 = s2.substring(0, j) + ' ' + s2.substring(j + 1); break; } } } System.out.println(counter); return (s1.length() - counter) + (s2.length() - counter);
Load more conversations
Sort 710 Discussions, By:
Please Login in order to post a comment