622,检查两个字符串数组是否相等
问题描述
来源: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));
}
截止到目前我已经写了600多道算法题了,为了方便大家阅读,我把部分算法题整理成了pdf文档,目前有1000多页,大家可以在下面公众号“数据结构和算法”中回复关键字“pdf”即可获取下载链接。