图解LeetCode——1662. 检查两个字符串数组是否相等(难度:简单)

2023-05-10 11:53:04 浏览数 (1)

一、题目

给你两个字符串数组 word1word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false

数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。

二、示例

2.1> 示例 1:

【输入】word1 = ["ab", "c"], word2 = ["a", "bc"] 【输出】true 【解释】word1 表示的字符串为 "ab" "c" -> "abc";word2 表示的字符串为 "a" "bc" -> "abc";两个字符串相同,返回 true

2.2> 示例 2:

【输入】word1 = ["a", "cb"], word2 = ["ab", "c"] 【输出】false

2.3> 示例 3:

【输入】word1 = ["abc", "d", "defg"], word2 = ["abcddefg"] 【输出】true

提示:

  • 1 <= word1.length, word2.length <= 10^3
  • 1 <= word1[i].length, word2[i].length <= 10^3
  • 1 <= sum(word1[i].length), sum(word2[i].length) <= 10^3
  • word1[i]word2[i]小写字母 组成

三、解题思路

根据本题描述,要分别将两个字符串数组中所有的字符串进行拼装,如果两个字符串最终的拼装结果是彼此相等的,则返回true,否则返回false。那么,我们只需要实现最终字符串拼装,然后再通过equals(...)对比即可。

下面有两种实现方式:

方式1:通过String的join(...)方法来拼装数组中的每个字符串元素。 方式2:分别循环遍历每个字符串数组,然后通过调用StringBuilder的append(...)方法进行拼装。

本题思路很简单,就画图解释了。具体实现,请见如下代码所示。

四、代码实现

4.1> 通过String的join(...)实现

代码语言:javascript复制
class Solution {
    public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
        return String.join("", word1).equals(String.join("", word2));
    }
}

4.2> 通过StringBuilder的append(...)实现

代码语言:javascript复制
class Solution {
    public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
        StringBuilder sb1 = new StringBuilder(), sb2 = new StringBuilder();
        for (String word : word1) sb1.append(word);
        for (String word : word2) sb2.append(word);
        return sb1.toString().equals(sb2.toString());
    }
}

0 人点赞