最长回文子串

Posted love-life-insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长回文子串相关的知识,希望对你有一定的参考价值。

1: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    输入: "babad"

    输出: "bab"

    注意: "aba" 也是一个有效答案。

    思路:枚举出所有的类型的子串,然后判断是否是回文子串然后找出最长的长度/算法所需要时间太长

 var s = "abcddcba"
		 	var longestPalindrome = function(s) {
               if(s===""||s.length===1){
//一个长度直接返回,空串也直接返回
               	return s;
               }
               var len =0,s1 = [0,0];
               for(var i=0;i<s.length; i++)
               {
               	for(var j=i+1; j<s.length; j++)
               	{
               		//是否是回文串
               		var str = s.substring(i,j+1)
               		if(check(str)){
               			//判断最长
               			if(j-i+1>len){
               				len = j-i+1;
               				s1 = [i,j];
               		    }
               	      }
               	
               } 
             };
             return s.substring(s1[0],s1[1]+1);
		 }
		 	function check (s) {
		 		//判断回文
		 		for(var i=0;i<Math.floor(s.length/2);i++)
		 		{	
		 			if(s[i] !== s[s.length-i-1]){
		 				return false;
		 	         }
		 	     }
		 		return true;
		 		}
		 console.log(longestPalindrome(s))

  

以上是关于最长回文子串的主要内容,如果未能解决你的问题,请参考以下文章

华为机试题 HJ85最长回文子串

最长回文字串暴力

Leetcode 5. 最长回文子串

找到最长的回文子串

最长回文子串(python)

字符串最长回文子串 ( 动态规划算法 ) ★