mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
提供JavaScript版本的《重复的子字符串》
This commit is contained in:
@ -289,8 +289,79 @@ func repeatedSubstringPattern(s string) bool {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
JavaScript版本
|
||||||
|
|
||||||
|
> 前缀表统一减一
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
/**
|
||||||
|
* @param {string} s
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
var repeatedSubstringPattern = function (s) {
|
||||||
|
if (s.length === 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const getNext = (s) => {
|
||||||
|
let next = [];
|
||||||
|
let j = -1;
|
||||||
|
|
||||||
|
next.push(j);
|
||||||
|
|
||||||
|
for (let i = 1; i < s.length; ++i) {
|
||||||
|
while (j >= 0 && s[i] !== s[j + 1])
|
||||||
|
j = next[j];
|
||||||
|
if (s[i] === s[j + 1])
|
||||||
|
j++;
|
||||||
|
next.push(j);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
let next = getNext(s);
|
||||||
|
|
||||||
|
if (next[next.length - 1] !== -1 && s.length % (s.length - (next[next.length - 1] + 1)) === 0)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
> 前缀表统一不减一
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
/**
|
||||||
|
* @param {string} s
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
var repeatedSubstringPattern = function (s) {
|
||||||
|
if (s.length === 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const getNext = (s) => {
|
||||||
|
let next = [];
|
||||||
|
let j = 0;
|
||||||
|
|
||||||
|
next.push(j);
|
||||||
|
|
||||||
|
for (let i = 1; i < s.length; ++i) {
|
||||||
|
while (j > 0 && s[i] !== s[j])
|
||||||
|
j = next[j - 1];
|
||||||
|
if (s[i] === s[j])
|
||||||
|
j++;
|
||||||
|
next.push(j);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
let next = getNext(s);
|
||||||
|
|
||||||
|
if (next[next.length - 1] !== 0 && s.length % (s.length - next[next.length - 1]) === 0)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user