Michael K |
function scrambler() { var match = 0 var fail = 0; var clone = "this is my test string"; var cloneLow = clone.toLowerCase(); var cloneArr = cloneLow.split(""); var orig = "i miss test"; var origLow = orig.toLowerCase(); var origArr = origLow.split(""); for (var i = 0; i < clone.length; i++) { if (orig.indexOf(clone[i]) == -1) { fail++; } else { match++; } } if (match >= origArr.length) { return true; } else { return false; } }
|
pending… |
Max H |
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… |
Spencer W |
var StringScramble = function(str1,str2){ var scrambled = str1.split("").sort(); var expected = str2.split("").sort(); var result = []; var ii = scrambled.length; var jj = expected.length;
for(var i = 0;i<ii;i++) { for(var j = 0;j<jj;j++) { if(scrambled[i] === expected[j]) { result.push(scrambled[i]); break; } }
} var scrambledString = result.toString(); var expectedString = expected.toString(); return (scrambledString === expectedString ? "true" : "false");
};
|
pending… |
Jenni |
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 |
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); }
//trues //StringScramble("cat", "act") //StringScramble("cattle", "act") //StringScramble("abbbba", "b") //StringScramble("cattle", "") //StringScramble("", "")
//falses //StringScramble("cat", "actor") //StringScramble("cattle", "lettuce") //StringScramble("", "b")
|
pending… |
Kyle |
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… |
0 comments