查看原文
其他

622,检查两个字符串数组是否相等

博哥 数据结构和算法 2022-05-19

问题描述



来源:LeetCode第1662题

难度:简单


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


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


示例 1:

输入:word1 = ["ab", "c"],

word2 = ["a", "bc"]

输出:true

解释

word1 表示的字符串为 "ab" + "c" -> "abc"

word2 表示的字符串为 "a" + "bc" -> "abc"

两个字符串相同,返回 true

示例 2:

输入:word1 = ["a", "cb"],

word2 = ["ab", "c"]

输出:false

示例 3:

输入

word1  = ["abc", "d", "defg"], 

word2 = ["abcddefg"]

输出:true


提示:

  • 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]和word2[i]由小写字母组成


问题分析



这又是一道简单的题,题中说了判断两个数组拼接的字符串是否相等。最简单的一种方式就是把每个数组中的字符串分别拼接在一起,最后再判断这两个拼接后的字符串是否相等即可,原理非常简单,直接看下代码。

public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
    StringBuilder s1 = new StringBuilder();
    StringBuilder s2 = new StringBuilder();
    //拼接word1中的字符串
    for (int i = 0; i < word1.length; i++)
        s1.append(word1[i]);
    //拼接word2中的字符串
    for (int i = 0; i < word2.length; i++)
        s2.append(word2[i]);
    //比较这两个拼接之后的字符串是否相等
    return s1.toString().equals(s2.toString());
}

如果对java比较熟悉的话,还可以一行代码搞定。

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

615,双指针解两数相加

613,双指针解三数之和

597,双指针解验证回文字符串 Ⅱ

539,双指针解删除有序数组中的重复项


截止到目前我已经写了600多道算法题了,为了方便大家阅读,我把部分算法题整理成了pdf文档,目前有1000多页,大家可以在下面公众号“数据结构和算法”中回复关键字“pdf”即可获取下载链接。

你点的每个赞,我都认真当成了喜欢

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存