码迷,mamicode.com
首页 > 其他好文 > 详细

最长回文子串

时间:2018-12-17 16:54:24      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:lse   ons   func   javascrip   思路   mat   false   bcd   [1]   

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))

  

最长回文子串

标签:lse   ons   func   javascrip   思路   mat   false   bcd   [1]   

原文地址:https://www.cnblogs.com/love-life-insist/p/10132180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!