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