Skip to content

Commit db3c3ef

Browse files
authored
feat: update solutions to lc problem: No.1813 (doocs#3610)
1 parent a5b8851 commit db3c3ef

File tree

4 files changed

+80
-34
lines changed

4 files changed

+80
-34
lines changed

solution/1800-1899/1813.Sentence Similarity III/README.md

+28-11
Original file line numberDiff line numberDiff line change
@@ -192,20 +192,37 @@ func areSentencesSimilar(sentence1 string, sentence2 string) bool {
192192

193193
```ts
194194
function areSentencesSimilar(sentence1: string, sentence2: string): boolean {
195-
const words1 = sentence1.split(' ');
196-
const words2 = sentence2.split(' ');
197-
if (words1.length < words2.length) {
198-
return areSentencesSimilar(sentence2, sentence1);
199-
}
195+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
200196
const [m, n] = [words1.length, words2.length];
201-
let [i, j] = [0, 0];
202-
while (i < n && words1[i] === words2[i]) {
203-
++i;
197+
198+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
199+
200+
let [l, r] = [0, 0];
201+
for (let i = 0; i < n; i++) {
202+
if (l === i && words1[i] === words2[i]) l++;
203+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
204204
}
205-
while (j < n && words1[m - 1 - j] === words2[n - 1 - j]) {
206-
++j;
205+
206+
return l + r >= m;
207+
}
208+
```
209+
210+
#### JavaScript
211+
212+
```js
213+
function areSentencesSimilar(sentence1, sentence2) {
214+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
215+
const [m, n] = [words1.length, words2.length];
216+
217+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
218+
219+
let [l, r] = [0, 0];
220+
for (let i = 0; i < n; i++) {
221+
if (l === i && words1[i] === words2[i]) l++;
222+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
207223
}
208-
return i + j >= n;
224+
225+
return l + r >= m;
209226
}
210227
```
211228

solution/1800-1899/1813.Sentence Similarity III/README_EN.md

+28-11
Original file line numberDiff line numberDiff line change
@@ -198,20 +198,37 @@ func areSentencesSimilar(sentence1 string, sentence2 string) bool {
198198

199199
```ts
200200
function areSentencesSimilar(sentence1: string, sentence2: string): boolean {
201-
const words1 = sentence1.split(' ');
202-
const words2 = sentence2.split(' ');
203-
if (words1.length < words2.length) {
204-
return areSentencesSimilar(sentence2, sentence1);
205-
}
201+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
206202
const [m, n] = [words1.length, words2.length];
207-
let [i, j] = [0, 0];
208-
while (i < n && words1[i] === words2[i]) {
209-
++i;
203+
204+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
205+
206+
let [l, r] = [0, 0];
207+
for (let i = 0; i < n; i++) {
208+
if (l === i && words1[i] === words2[i]) l++;
209+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
210210
}
211-
while (j < n && words1[m - 1 - j] === words2[n - 1 - j]) {
212-
++j;
211+
212+
return l + r >= m;
213+
}
214+
```
215+
216+
#### JavaScript
217+
218+
```js
219+
function areSentencesSimilar(sentence1, sentence2) {
220+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
221+
const [m, n] = [words1.length, words2.length];
222+
223+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
224+
225+
let [l, r] = [0, 0];
226+
for (let i = 0; i < n; i++) {
227+
if (l === i && words1[i] === words2[i]) l++;
228+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
213229
}
214-
return i + j >= n;
230+
231+
return l + r >= m;
215232
}
216233
```
217234

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function areSentencesSimilar(sentence1, sentence2) {
2+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
3+
const [m, n] = [words1.length, words2.length];
4+
5+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
6+
7+
let [l, r] = [0, 0];
8+
for (let i = 0; i < n; i++) {
9+
if (l === i && words1[i] === words2[i]) l++;
10+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
11+
}
12+
13+
return l + r >= m;
14+
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
function areSentencesSimilar(sentence1: string, sentence2: string): boolean {
2-
const words1 = sentence1.split(' ');
3-
const words2 = sentence2.split(' ');
4-
if (words1.length < words2.length) {
5-
return areSentencesSimilar(sentence2, sentence1);
6-
}
2+
const [words1, words2] = [sentence1.split(' '), sentence2.split(' ')];
73
const [m, n] = [words1.length, words2.length];
8-
let [i, j] = [0, 0];
9-
while (i < n && words1[i] === words2[i]) {
10-
++i;
11-
}
12-
while (j < n && words1[m - 1 - j] === words2[n - 1 - j]) {
13-
++j;
4+
5+
if (m > n) return areSentencesSimilar(sentence2, sentence1);
6+
7+
let [l, r] = [0, 0];
8+
for (let i = 0; i < n; i++) {
9+
if (l === i && words1[i] === words2[i]) l++;
10+
if (r === i && words2[n - i - 1] === words1[m - r - 1]) r++;
1411
}
15-
return i + j >= n;
12+
13+
return l + r >= m;
1614
}

0 commit comments

Comments
 (0)