File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s
3
+ * @return {string }
4
+ */
5
+ let longestPalindrome = function ( s ) {
6
+ let n = s . length
7
+ if ( n < 2 ) {
8
+ return s
9
+ }
10
+
11
+ let dp = [ ]
12
+ for ( let i = 0 ; i < n ; i ++ ) {
13
+ dp [ i ] = [ ]
14
+ dp [ i ] [ i ] = true
15
+ }
16
+
17
+ let max = 0
18
+ let begin = 0
19
+ for ( let j = 1 ; j < n ; j ++ ) {
20
+ for ( let i = 0 ; i < j ; i ++ ) {
21
+ if ( s [ j ] !== s [ i ] ) {
22
+ dp [ i ] [ j ] = false
23
+ } else {
24
+ let indent = dp [ i + 1 ] [ j - 1 ]
25
+ if ( indent === undefined || indent === true ) {
26
+ dp [ i ] [ j ] = true
27
+ } else {
28
+ dp [ i ] [ j ] = false
29
+ }
30
+ }
31
+
32
+ if ( dp [ i ] [ j ] === true && j - i > max ) {
33
+ max = j - i
34
+ begin = i
35
+ }
36
+ }
37
+ }
38
+ console . log ( 'dp' , dp )
39
+ return s . substr ( begin , max + 1 )
40
+ }
41
+
42
+ console . log ( longestPalindrome ( "abcda" ) )
You can’t perform that action at this time.
0 commit comments