Skip to content

Latest commit

 

History

History
 
 

1662. Check If Two String Arrays are Equivalent

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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.

Related Topics:
String

Solution 1. Brute Force

// OJ: https://leetcode.com/problems/check-if-two-string-arrays-are-equivalent/
// Author: github.com/lzl124631x
// Time: O(A + B)
// Space: O(A + B)
class Solution {
public:
    bool arrayStringsAreEqual(vector<string>& A, vector<string>& B) {
        string a, b;
        for (auto &x : A) a += x;
        for (auto &x : B) b += x;
        return a == b;
    }
};

Solution 2.

// OJ: https://leetcode.com/problems/check-if-two-string-arrays-are-equivalent/
// Author: github.com/lzl124631x
// Time: O(A + B)
// Space: O(1)
class Solution {
public:
    bool arrayStringsAreEqual(vector<string>& A, vector<string>& B) {
        int i = 0, a = 0, j = 0, b = 0;
        while (i < A.size() && j < B.size()) {
            if (A[i][a] != B[j][b]) return false;
            if (++a >= A[i].size()) ++i, a = 0;
            if (++b >= B[j].size()) ++j, b = 0;
        }
        return i == A.size() && j == B.size();
    }
};