Skip to content

Commit be3a604

Browse files
committed
feat: add solutions to lc problem: No.1662
No.1662.Check If Two String Arrays are Equivalent
1 parent 9937c31 commit be3a604

File tree

5 files changed

+159
-11
lines changed

5 files changed

+159
-11
lines changed

solution/1600-1699/1662.Check If Two String Arrays are Equivalent/README.md

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,31 +184,92 @@ func arrayStringsAreEqual(word1 []string, word2 []string) bool {
184184
}
185185
```
186186

187+
### **C**
188+
189+
```c
190+
bool arrayStringsAreEqual(char **word1, int word1Size, char **word2, int word2Size) {
191+
int i = 0;
192+
int j = 0;
193+
int x = 0;
194+
int y = 0;
195+
while (i < word1Size && j < word2Size) {
196+
if (word1[i][x++] != word2[j][y++]) {
197+
return 0;
198+
}
199+
200+
if (word1[i][x] == '\0') {
201+
x = 0;
202+
i++;
203+
}
204+
if (word2[j][y] == '\0') {
205+
y = 0;
206+
j++;
207+
}
208+
}
209+
return i == word1Size && j == word2Size;
210+
}
211+
```
212+
187213
### **TypeScript**
188214
189215
```ts
190216
function arrayStringsAreEqual(word1: string[], word2: string[]): boolean {
191-
return word1.join('') == word2.join('');
217+
return word1.join('') === word2.join('');
192218
}
193219
```
194220

195221
```ts
196222
function arrayStringsAreEqual(word1: string[], word2: string[]): boolean {
197223
let [i, j, x, y] = [0, 0, 0, 0];
198224
while (i < word1.length && j < word2.length) {
199-
if (word1[i][x++] != word2[j][y++]) {
225+
if (word1[i][x++] !== word2[j][y++]) {
200226
return false;
201227
}
202-
if (x == word1[i].length) {
228+
if (x === word1[i].length) {
203229
x = 0;
204230
++i;
205231
}
206-
if (y == word2[j].length) {
232+
if (y === word2[j].length) {
207233
y = 0;
208234
++j;
209235
}
210236
}
211-
return i == word1.length && j == word2.length;
237+
return i === word1.length && j === word2.length;
238+
}
239+
```
240+
241+
### **Rust**
242+
243+
```rust
244+
impl Solution {
245+
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>) -> bool {
246+
word1.join("") == word2.join("")
247+
}
248+
}
249+
```
250+
251+
```rust
252+
impl Solution {
253+
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>) -> bool {
254+
let (n, m) = (word1.len(), word2.len());
255+
let (mut i, mut j, mut x, mut y) = (0, 0, 0, 0);
256+
while i < n && j < m {
257+
if word1[i].as_bytes()[x] != word2[j].as_bytes()[y] {
258+
return false;
259+
}
260+
x += 1;
261+
y += 1;
262+
if x == word1[i].len() {
263+
x = 0;
264+
i += 1;
265+
}
266+
if y == word2[j].len() {
267+
y = 0;
268+
j += 1;
269+
}
270+
}
271+
i == n && j == m
272+
}
212273
}
213274
```
214275

solution/1600-1699/1662.Check If Two String Arrays are Equivalent/README_EN.md

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,31 +156,92 @@ func arrayStringsAreEqual(word1 []string, word2 []string) bool {
156156
}
157157
```
158158

159+
### **C**
160+
161+
```c
162+
bool arrayStringsAreEqual(char **word1, int word1Size, char **word2, int word2Size) {
163+
int i = 0;
164+
int j = 0;
165+
int x = 0;
166+
int y = 0;
167+
while (i < word1Size && j < word2Size) {
168+
if (word1[i][x++] != word2[j][y++]) {
169+
return 0;
170+
}
171+
172+
if (word1[i][x] == '\0') {
173+
x = 0;
174+
i++;
175+
}
176+
if (word2[j][y] == '\0') {
177+
y = 0;
178+
j++;
179+
}
180+
}
181+
return i == word1Size && j == word2Size;
182+
}
183+
```
184+
159185
### **TypeScript**
160186
161187
```ts
162188
function arrayStringsAreEqual(word1: string[], word2: string[]): boolean {
163-
return word1.join('') == word2.join('');
189+
return word1.join('') === word2.join('');
164190
}
165191
```
166192

167193
```ts
168194
function arrayStringsAreEqual(word1: string[], word2: string[]): boolean {
169195
let [i, j, x, y] = [0, 0, 0, 0];
170196
while (i < word1.length && j < word2.length) {
171-
if (word1[i][x++] != word2[j][y++]) {
197+
if (word1[i][x++] !== word2[j][y++]) {
172198
return false;
173199
}
174-
if (x == word1[i].length) {
200+
if (x === word1[i].length) {
175201
x = 0;
176202
++i;
177203
}
178-
if (y == word2[j].length) {
204+
if (y === word2[j].length) {
179205
y = 0;
180206
++j;
181207
}
182208
}
183-
return i == word1.length && j == word2.length;
209+
return i === word1.length && j === word2.length;
210+
}
211+
```
212+
213+
### **Rust**
214+
215+
```rust
216+
impl Solution {
217+
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>) -> bool {
218+
word1.join("") == word2.join("")
219+
}
220+
}
221+
```
222+
223+
```rust
224+
impl Solution {
225+
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>) -> bool {
226+
let (n, m) = (word1.len(), word2.len());
227+
let (mut i, mut j, mut x, mut y) = (0, 0, 0, 0);
228+
while i < n && j < m {
229+
if word1[i].as_bytes()[x] != word2[j].as_bytes()[y] {
230+
return false;
231+
}
232+
x += 1;
233+
y += 1;
234+
if x == word1[i].len() {
235+
x = 0;
236+
i += 1;
237+
}
238+
if y == word2[j].len() {
239+
y = 0;
240+
j += 1;
241+
}
242+
}
243+
i == n && j == m
244+
}
184245
}
185246
```
186247

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
bool arrayStringsAreEqual(char **word1, int word1Size, char **word2, int word2Size) {
2+
int i = 0;
3+
int j = 0;
4+
int x = 0;
5+
int y = 0;
6+
while (i < word1Size && j < word2Size) {
7+
if (word1[i][x++] != word2[j][y++]) {
8+
return 0;
9+
}
10+
11+
if (word1[i][x] == '\0') {
12+
x = 0;
13+
i++;
14+
}
15+
if (word2[j][y] == '\0') {
16+
y = 0;
17+
j++;
18+
}
19+
}
20+
return i == word1Size && j == word2Size;
21+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
impl Solution {
2+
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>) -> bool {
3+
word1.join("") == word2.join("")
4+
}
5+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
function arrayStringsAreEqual(word1: string[], word2: string[]): boolean {
2-
return word1.join('') == word2.join('');
2+
return word1.join('') === word2.join('');
33
}

0 commit comments

Comments
 (0)