Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var arr = ["abcdefbghijklabop", "bl"];
- function getShortestSub(dic) {
- var shortestlen = Infinity;
- var substring = "";
- for( var key in dic ) {
- if (dic[key].length < shortestlen) {
- shortestlen = dic[key].length;
- substring = dic[key];
- }
- }
- return substring;
- }
- function substringHelper(i, string, characters, strings) {
- if (i in strings) {
- return;
- }
- var tempDic = {};
- for (var key in characters) {
- tempDic[key] = characters[key];
- }
- var tempStr = "";
- var j = i;
- while (i < string.length) {
- if (string[i] in tempDic) {
- tempDic[string[i]]--;
- tempStr += string[i];
- i++;
- substringHelper(i, string, characters, strings);
- var isntDone = false;
- for (var key in tempDic) {
- if (tempDic[key] > 0) {
- isntDone = true;
- }
- }
- if (isntDone) {
- continue;
- }
- else {
- strings[j] = tempStr;
- return;
- }
- }
- else {
- tempStr += string[i];
- i++;
- }
- }
- }
- function MinWindowSubstring(strArr) {
- var potStrings = {};
- var charCounts = {};
- var string = strArr[0];
- var chars = strArr[1];
- for (var i = 0; i < chars.length; i++) {
- if (chars[i] in charCounts) {
- charCounts[chars[i]]++;
- }
- else {
- charCounts[chars[i]] = 1;
- }
- }
- var j = 0;
- while (j < string.length) {
- if (!(string[j] in charCounts)) {
- j++;
- continue;
- }
- else {
- substringHelper(j, string, charCounts, potStrings);
- }
- j++;
- }
- return getShortestSub(potStrings);
- }
- // keep this function call here
- console.log(MinWindowSubstring(arr));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement