题目描述:
给你两个字符串数组 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
思路分析一:
将数组中的字符串进行拼接,再对拼接后的字符串进行判断,比较是否相等。
代码实现:
class Solution {
public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for(int i = 0; i < word1.length;i++){
sb1.append(word1[i]);
}
for(int i = 0; i < word2.length;i++){
sb2.append(word2[i]);
}
return sb1.toString().equals(sb2.toString());
}
}
思路分析二:
这个方法有点取巧。
1、通过Arrays函数,将数组转换成String字符串后,输出形式为[a, bc]。
2、将“, ”转换为“null”,再将两个字符串进行判断是否相等。
代码实现:
class Solution {
public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
return Arrays.toString(word1).replace(", ","").equals(Arrays.toString(word2).replace(", ",""));
}
}