题目
给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。
数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。
示例1:
1 | 输入:word1 = ["ab", "c"], word2 = ["a", "bc"] |
示例2:
查询结果的格式如下所示:
1 | 输入:word1 = ["a", "cb"], word2 = ["ab", "c"] |
示例3:
1 | 输入:word1 = ["abc", "d", "defg"], word2 = ["abcddefg"] |
提示:
- 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] 由小写字母组成
解法
解法一:
直接使用StringBuilder拼接字符串比较
Java
1 | public boolean arrayStringsAreEqual(String[] word1, String[] word2) { |
解法二
使用库函数String.join(“joiner”, array)
Java
1 | public boolean arrayStringsAreEqual(String[] word1, String[] word2) { |
解法三
使用流
1 | public boolean arrayStringsAreEqual(String[] word1, String[] word2) { |
三种解法之中,解法1是最快的,0ms,36.4MB内存消耗,解法2次之,耗费了1ms和36.7MB内存,解法3是最慢和消耗内存最大的。用了37.6MB内存和3ms。