Skip to content

Commit ff322b4

Browse files
committed
Update 1813. 句子相似性-iii
1 parent e3d0641 commit ff322b4

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

algorithms/sentence-similarity-iii.js

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,36 @@ var areSentencesSimilar = function (sentence1, sentence2) {
1919
return false;
2020
}
2121
}
22-
2322
return true;
23+
24+
// return areSentencesSimilar2(sentence1, sentence2);
2425
};
26+
27+
// 双端指针解法
28+
var areSentencesSimilar2 = function (sentence1, sentence2) {
29+
sentence1 = sentence1.split(' ')
30+
sentence2 = sentence2.split(' ')
31+
32+
let left1 = 0;
33+
let right1 = sentence1.length - 1;
34+
let left2 = 0;
35+
let right2 = sentence2.length - 1;
36+
37+
while (left1 <= right1 && left2 <= right2) {
38+
if (
39+
sentence1[left1] !== sentence2[left2] &&
40+
sentence1[right1] !== sentence2[right2]
41+
) {
42+
return false;
43+
}
44+
if (sentence1[left1] === sentence2[left2]) {
45+
left1++;
46+
left2++;
47+
}
48+
if (sentence1[right1] === sentence2[right2]) {
49+
right1--;
50+
right2--;
51+
}
52+
}
53+
return true;
54+
};

vs-lt/1813.句子相似性-iii.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* @lc app=leetcode.cn id=1813 lang=javascript
3+
*
4+
* [1813] 句子相似性 III
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {string} sentence1
10+
* @param {string} sentence2
11+
* @return {boolean}
12+
*/
13+
var areSentencesSimilar = function(sentence1, sentence2) {
14+
sentence1 = sentence1.split(' ')
15+
sentence2 = sentence2.split(' ')
16+
17+
let left1 = 0;
18+
let right1 = sentence1.length - 1;
19+
let left2 = 0;
20+
let right2 = sentence2.length - 1;
21+
22+
while (left1 <= right1 && left2 <= right2) {
23+
if (
24+
sentence1[left1] !== sentence2[left2] &&
25+
sentence1[right1] !== sentence2[right2]
26+
) {
27+
return false;
28+
}
29+
if (sentence1[left1] === sentence2[left2]) {
30+
left1++;
31+
left2++;
32+
}
33+
if (sentence1[right1] === sentence2[right2]) {
34+
right1--;
35+
right2--;
36+
}
37+
}
38+
return true;
39+
};
40+
// @lc code=end
41+

0 commit comments

Comments
 (0)