LeetCode 每日 1 题:检查两个字符串数组是否相等

196 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第 15 天,点击查看活动详情

检查两个字符串数组是否相等

原题地址

给你两个字符串数组 word1word2 。如果两个数组表示的字符串相同,返回 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

提示:

  • 1<=word1.length,word2.length<=1031 <= word1.length, word2.length <= 10^3
  • 1<=word1[i].length,word2[i].length<=1031 <= word1[i].length, word2[i].length <= 10^3
  • 1<=sum(word1[i].length),sum(word2[i].length)<=1031 <= sum(word1[i].length), sum(word2[i].length) <= 10^3
  • word1[i]word2[i] 由小写字母组成

思路分析

  1. 根据题目中对 数组表示的字符串 的定义,可以得到数组代表的字符串;
  2. 使用 join 方法将数组转换成字符串,然后对比两个数组得到的字符串是否相同。

注:

join 方法: MDN释义,此方法将一个数组(或一个[类数组对象])的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。

本题使用的是 join 方法,若调用方法时,没有传参,则会使用逗号进行分隔组成字符串。若传递字符串作为参数,则会使用传入的字符串进行分隔组成新的字符串。按照题目中的要求,使用join方法可以完全的满足条件,当然也可以手动实现一个join方法,用来拼接字符串。

AC 代码

/**
 * @param {string[]} word1
 * @param {string[]} word2
 * @return {boolean}
 */
var arrayStringsAreEqual = function(word1, word2) {
    return word1.join('') === word2.join('')
};

结果:

  • 执行结果: 通过
  • 执行用时:48 ms, 在所有 JavaScript 提交中击败了98.43%的用户
  • 内存消耗:41.2 MB, 在所有 JavaScript 提交中击败了30.15%的用户
  • 通过测试用例:110 / 110

END