一、題目
給你兩個字符串數組 word1
和 word2
。如果兩個數組表示的字符串相同,返回 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)/ ~ 「干貨分享,每天更新」