题目:
给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/check-if-two-string-arrays-are-equivalent
解题思路:
法1:使用双指针,两个字符串进行逐个比较,i,j记录各自两个字符串数组的位置,p,q则指定字符串的单个字符进行比较。
代码:(JAVA)
class Solution {
public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
int i=0,j=0,p=0,q=0;
while(i<word1.length && j<word2.length) {
if(word1[i].charAt(p++)!=word2[j].charAt(q++)) return false;
if(p==word1[i].length()) { //这个字符串比较完成,移到下一个
p=0;
i++;
}
if(q==word2[j].length()) {
q=0;
j++;
}
}
return i==word1.length&&j==word2.length; //保证两个都比较完
}
}
法2:直接将两个字符串数组各自合并为两个大的字符串,再比较这两个大的字符串。
代码:(JAVA)
class Solution {
public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
String str1="",str2="";
for(int i=0;i<word1.length;i++) {
str1+=word1[i];
}
for(int i=0;i<word2.length;i++) {
str2+=word1[i];
}
return str1.equals(str2);
}
}