美文网首页图解LeetCode算法
图解LeetCode——1662. 检查两个字符串数组是否相等(

图解LeetCode——1662. 检查两个字符串数组是否相等(

作者: 爪哇缪斯 | 来源:发表于2022-10-31 08:41 被阅读0次

    一、题目

    给你两个字符串数组 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(...)实现

    class Solution {
        public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
            return String.join("", word1).equals(String.join("", word2));
        }
    }
    

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

    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());
        }
    }
    

    今天的文章内容就这些了:

    写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

    更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(o)/ ~ 「干货分享,每天更新」

    相关文章

      网友评论

        本文标题:图解LeetCode——1662. 检查两个字符串数组是否相等(

        本文链接:https://www.haomeiwen.com/subject/rnrrtdtx.html