Skip to content

1662. Check If Two String Arrays are Equivalent

Difficulty Topics

Description

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.

Solution

check-if-two-string-arrays-are-equivalent.py
class Solution:
    def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
        n1, n2 = len(word1), len(word2)
        i = j = ki = kj = 0

        while i < n1 and j < n2:
            while ki < len(word1[i]) and kj < len(word2[j]):
                if word1[i][ki] != word2[j][kj]:
                    return False

                ki += 1
                kj += 1

            if ki == len(word1[i]):
                i += 1
                ki = 0

            if kj == len(word2[j]):
                j += 1
                kj = 0

        return i == n1 and j == n2
check-if-two-string-arrays-are-equivalent.cpp
class Solution {
public:
    bool arrayStringsAreEqual(vector<string>& word1, vector<string>& word2) {
        string s1 = "", s2 = "";
        for (auto w : word1) s1 += w;
        for (auto w: word2) s2 += w;

        return s1 == s2;
    }
};