Why is my console log returning "false" as expected but Leetcode output says "true" and flagging incorrect? Leetcode is telling me the output is "true" when it SHOULD be "false" and what I've logged in the console does return "false". I'll attach a screenshot of these outputs.
Leetcode Problem:
Given two string arrays word1 and word2, return true if the two arrays represent the same string, and false otherwise.
A string is represented by an array if the array elements concatenated in order forms the string.
Example 1:
Input: word1 = ["ab", "c"], word2 = ["a", "bc"]
Output: true
Explanation:
word1 represents string "ab" + "c" -> "abc"
word2 represents string "a" + "bc" -> "abc"
The strings are the same, so return true.
Example 2:
Input: word1 = ["a", "cb"], word2 = ["ab", "c"]
Output: false
Example 3:
Input: word1 = ["abc", "d", "defg"], word2 = ["abcddefg"]
Output: true
Constraints:
1 <= word1.length, word2.length <= 103
1 <= word1[i].length, word2[i].length <= 103
1 <= sum(word1[i].length), sum(word2[i].length) <= 103
word1[i] and word2[i] consist of lowercase letters.
My solution:
word1: ["a", "cb"]
word2: ["ab", "c"]
var arrayStringsAreEqual = function(word1, word2) {
async function getWordStrings(word1, word2) {
let newWord1 = await makeWord(word1);
let newWord2 = await makeWord(word2);
console.log('word 1: ', newWord1)
console.log('word 2: ', newWord2)
return newWord1 === newWord2;
}
return getWordStrings(word1, word2).then(x => {
return x, console.log('Do these match?: ', x)
})
};
function makeWord(string) {
let word = string;
return word.join().replace(/[^A-Za-z0-9]/g, "");
}