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]
andword2[i]
consist of lowercase letters.
Solution
/**
* @param {string[]} word1
* @param {string[]} word2
* @return {boolean}
*/
var arrayStringsAreEqual = function(word1, word2) {
var i = 0;
var m = 0;
var j = 0;
var n = 0;
while (i < word1.length && j < word2.length) {
if (word1[i][m] !== word2[j][n]) return false;
if (m === word1[i].length - 1) {
i += 1;
m = 0;
} else {
m += 1;
}
if (n === word2[j].length - 1) {
j += 1;
n = 0;
} else {
n += 1;
}
}
return i === word1.length && j === word2.length;
};
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(1).