/* var a = new buckets.LinkedList(); a.add(1,0); a.add(2,0) console.log(a.toArray()); var d = new buckets.MultiDictionary(); d.set("a", "aseem"); d.set("a", "aakash"); console.log(d.get("a")); */ var hasTwoDistinctChars = function(st) { var unique = []; for(i=0; i<st.length;i++) { if(unique.indexOf(st[i]) == -1) { unique.push(st[i]); } } return unique.length == 2 ? true : false; } function checkString(st) { if(hasTwoDistinctChars(st)) { return st; } else if(st.length ==2) { return false; } else { const stt1 = checkString(st.substring(0,st.length-1)); const stt2 = checkString(st.substring(1,st.length)); return stt1.length > stt2.length ? stt1 : stt2; } } console.log(checkString("ababcbcbaaabbdef"));