2023-12-01 Daily Challenge

Today I have done leetcode's December LeetCoding Challenge with cpp.

December LeetCoding Challenge 1

Description

Check If Two String Arrays are Equivalent

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.

Solution

class Solution {
public:
  bool arrayStringsAreEqual(vector<string>& word1, vector<string>& word2) {
    int i1 = 0, i2 = 0, s1 = 0, s2 = 0;
    int len1 = word1.size(), len2 = word2.size();
    while(i1 < len1 && i2 <len2) {
      if(word1[i1][s1] != word2[i2][s2]) return false;
      s1 += 1;
      if(s1 == word1[i1].length()) s1 = 0, i1 += 1;
      s2 += 1;
      if(s2 == word2[i2].length()) s2 = 0, i2 += 1;
    }
    if(i1 != len1 || i2 != len2) return false;
    return true;
  }
};

// Accepted
// 109/109 cases passed (3 ms)
// Your runtime beats 93.69 % of cpp submissions
// Your memory usage beats 89.94 % of cpp submissions (11.4 MB)