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.

这题最简单的做法就是把字符串进行拼接然后比较。我这里用索引来计算,但是实际时间复杂度好像没差什么。


class CheckIfTwoStringArraysAreEquivalent : public Solution {
public:
    void Exec() {

    }
    bool arrayStringsAreEqual(vector<string>& word1, vector<string>& word2) {
        int word2i = 0, word2j = 0;
        for (int i = 0; i < word1.size(); i++) {
            for (int j = 0; j < word1[i].size(); j++) {
                if (word2i >= word2.size()) {
                    return false;
                }
                if (word1[i][j] != word2[word2i][word2j]) {
                    return false;
                }
                ++word2j;
                if (word2j >= word2[word2i].size()) {
                    ++word2i; word2j = 0;
                }
            }
        }
        if (word2i != word2.size() || 0 != word2j) {
            return false;
        }
        return true;
    }
};
共 0 条回复
暂时没有人回复哦,赶紧抢沙发
发表新回复

作者

sryan
today is a good day