题目:
给你两个字符串数组 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
思路:把数组转换成字符串,在逐一比较其中的每个元素。
C语言:
bool arrayStringsAreEqual(char ** word1, int word1Size, char ** word2, int word2Size)
{
int a[1000] = {0},b[1000] = {0};
int i, j, k=0, n=0;
for(i=0;i<word1Size;i++)
{
for(j=0;j<strlen(word1[i]);j++)
a[k++] = word1[i][j];
}
for(i=0;i<word2Size;i++)
{
for(j=0;j<strlen(word2[i]);j++)
b[n++] = word2[i][j];
}
if(k != n)
return false;
for(i=0;i<k;i++)
if(a[i] != b[i])
return false;
return true;
}
执行用时4ms,内存消耗6.1MB.
Python3:
class Solution:
def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
str1 = ''.join(word1)
str2 = ''.join(word2)
if str1 == str2 :
return True
else:
return False
执行用时40ms,内存消耗15MB。