Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Check If Two String Arrays are Equivalent

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "1662" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

Given two string arrays word1 and word2, return true if the two arrays represent the same string, and false otherwise. A string is represented by an array if the array elements concatenated in order forms the string. Example 1: Input: word1 = ["ab", "c"], word2 = ["a", "bc"] Output: true Explanation: word1 represents string "ab" + "c" -> "abc" word2 represents string "a" + "bc" -> "abc" The strings are the same, so return true. Example 2: Input: word1 = ["a", "cb"], word2 = ["ab", "c"] Output: false Example 3: Input: word1 = ["abc", "d", "defg"], word2 = ["abcddefg"] Output: true Constraints: 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] and word2[i] consist of lowercase letters.

Explanation

Here's the breakdown of the solution:

  • Two Pointers: Use two pointers to iterate through the strings represented by word1 and word2 simultaneously. One pointer tracks the current word in word1, and another tracks the current word in word2. Inside each word, we use character index pointers to compare character by character.
  • Character-by-Character Comparison: Compare characters at the pointer locations in the two strings. If the characters don't match, return False.
  • Pointer Updates: Increment the character pointers and, if necessary, move to the next word in the array.

  • Time Complexity: O(N), where N is the total number of characters in both arrays. Space Complexity: O(1).

Code

    def arrayStringsAreEqual(word1: list[str], word2: list[str]) -> bool:
    """
    Given two string arrays word1 and word2, return true if the two arrays represent the same string, and false otherwise.
    A string is represented by an array if the array elements concatenated in order forms the string.
    """
    word1_idx = 0
    word2_idx = 0
    char1_idx = 0
    char2_idx = 0

    while word1_idx < len(word1) and word2_idx < len(word2):
        if word1[word1_idx][char1_idx] != word2[word2_idx][char2_idx]:
            return False

        char1_idx += 1
        if char1_idx == len(word1[word1_idx]):
            word1_idx += 1
            char1_idx = 0

        char2_idx += 1
        if char2_idx == len(word2[word2_idx]):
            word2_idx += 1
            char2_idx = 0

    return word1_idx == len(word1) and word2_idx == len(word2)

More from this blog

C

Chatmagic blog

2894 posts

Solving Leetcode Interviews in Seconds with AI: Check If Two String Arrays are Equivalent