File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 2
2
* @param {string } s
3
3
* @return {number }
4
4
*/
5
+
6
+ const minCut = function ( s ) {
7
+ const n = s . length
8
+ if ( n <= 1 ) return 0
9
+ const dp = new Array ( n ) . fill ( 0 )
10
+ for ( let i = 1 ; i < n ; i ++ ) dp [ i ] = i
11
+ for ( let i = 1 ; i < n ; i ++ ) {
12
+ // odd
13
+ for (
14
+ let start = i , end = i ;
15
+ end < n && start >= 0 && s [ end ] === s [ start ] ;
16
+ start -- , end ++
17
+ ) {
18
+ dp [ end ] = Math . min ( dp [ end ] , start === 0 ? 0 : dp [ start - 1 ] + 1 )
19
+ }
20
+ // even
21
+ for (
22
+ let start = i - 1 , end = i ;
23
+ end < n && start >= 0 && s [ end ] === s [ start ] ;
24
+ start -- , end ++
25
+ ) {
26
+ dp [ end ] = Math . min ( dp [ end ] , start === 0 ? 0 : dp [ start - 1 ] + 1 )
27
+ }
28
+ }
29
+ return dp [ n - 1 ]
30
+ }
31
+
32
+
33
+
34
+ // another
35
+
5
36
const minCut = function ( s ) {
6
37
const n = s . length
7
38
const cut = new Array ( n + 1 ) . fill ( 0 )
You can’t perform that action at this time.
0 commit comments