max h |
for (var i = 0; i < arr.length; i++) { StringScramble(arr[i][0], arr[i][1]); }
function StringScramble(str1, str2) { var arr = new Array(26); var index; var arr_length = arr.length; var str1_length = str1.length; var str2_length = str2.length; // Initialize the array to 0 for (var i = 0; i < arr_length; i++) { arr[i] = 0; }
str2 = str2.toLowerCase(); // Put char counts into arr for str2 for (var j = 0; j < str2_length; j++) { index = str2[j].charCodeAt(0) - 97; arr[index] = arr[index] + 1; }
// Compare str1 to str2 for (var k = 0; k < str1_length; k++) { index = str1[k].charCodeAt(0) - 97; if (arr[index] > 0) arr[index] = arr[index] - 1; }
// If any of the elements in the arry is non 0, // there's a mismatch and str1 cannot be a permutation of str2 for (var n = 0; n < arr_length; n++) { if (arr[n] != 0) return false; } return true; }
|
pending… |
jenni |
for (var i = 0; i < arr.length; i++) { StringScramble(arr[i][0], arr[i][1]); }
function StringScramble(str1, str2) { var s1 = str1.split(""), s2 = str2.split(""), l1 = s1.length, l2 = s2.length, a1 = []; // duplicate array accounts for double letters for (var j = 0; j < l1; j++) { if (a1[s1[j]]) { a1[s1[j]]++; } else { a1[s1[j]] = 1; } }
for (var i = 0; i < l2; i++) { if (a1[s2[i]] > 0) { a1[s2[i]]--; } else { return false; } } return true; }
|
pending… |
frank |
for (var i = 0; i < arr.length; i++) { StringScramble(arr[i][0], arr[i][1]); }
function StringScramble(str1, str2) {
// Easy fail, if str1 isn't long enough if (str1.length < str2.length) { return false; }
// Basic approach: // Sort the letters, then compare them // one by one, and bail out as soon as // we see a letter in s2 that s1 can't supply list1 = str1.split('').sort(); list2 = str2.split('').sort();
var c1 = list1.pop(); var c2 = list2.pop(); while (c1 && c2) { if (c1 == c2) { c1 = list1.pop(); c2 = list2.pop(); } else if (c1 < c2) { // str2 just asked for a char str1 can't provide return false; } else { // burn off excess str1 chars c1 = list1.pop(); } }
// a value leftover in c2 means that str1 dried up // before matching all of str2's needs. Fail! return (!c2); }
|
pending… |
Kyle |
for (var i = 0; i < arr.length; i++) { StringScramble(arr[i][0], arr[i][1]); }
function StringScramble(str1, str2) {
var count = 0;
var lowerstr1 = str1.toLowerCase(); var lowerstr2 = str2.toLowerCase(); var splitarr1 = lowerstr1.split(""); var splitarr2 = lowerstr2.split("");
for (var i = 0; i < splitarr1.length; i++) { for (var j = 0; j < splitarr2.length; j++) { if (splitarr2[j] === splitarr1[i]) { splitarr1[i] = "*"; count++; }
if (count == splitarr2.length) { return "true"; } } } return "false"
}
|
pending… |
Sam P |
for (var i = 0; i < arr.length; i++) { StringScramble(arr[i][0], arr[i][1]); }
function StringScramble(str1, str2) { if (str2.length > str1.length) return false;
var arr1 = []; for (var i = 0, length = str1.length; i < length; i++) { arr1.push(str1.charCodeAt(i)); }
var arr2 = []; for (i = 0, length = str2.length; i < length; i++) { arr2.push(str2.charCodeAt(i)); }
for (i = 0; i < arr2.length; i++) { if ((x = arr1.indexOf(arr2[i])) > -1) arr1.splice(x, 1); else return false; }
return true; }
|
pending… |
0 comments