DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

Check If Two String Arrays are Equivalent

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:

class Solution:
    def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
        m = len(word1)
        n = len(word2)
        a, b = 0, 0
        c, d = 0, 0
        while a < m and c < n:
            if word1[a][b] != word2[c][d]:
                return False
            a, b = a + (b + 1) // len(word1[a]), (b + 1) % len(word1[a])
            c, d = c + (d + 1) // len(word2[c]), (d + 1) % len(word2[c])
        return a >= m and c >= n
Enter fullscreen mode Exit fullscreen mode

Top comments (0)