Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit db3c3ef

Browse files
authored
feat: update solutions to lc problem: No.1813 (#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‎

Lines changed: 28 additions & 11 deletions
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‎

Lines changed: 28 additions & 11 deletions
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

Lines changed: 14 additions & 0 deletions
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+
}
Lines changed: 10 additions & 12 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /