题目描述:
给你一个字符串 s
,找到 s
中最长的回文子串
在vue脚手架中实现如下:
mounted() { let result = this.findPalindromeStr("abcdefgedeg"); console.log(result); }, methods: {
// 如果字符串长度为1,则直接返回 findPalindromeStr(s) { if (s.length == 1) { return s; } let arr = []; let arr3 = []; // 双重遍历 截取所有相同字母之间的字串 for (let i = 0; i < s.length - 1; i++) { for (let j = i + 1; j < s.length; j++) { if (s[i] == s[j]) { arr.push(s.substring(i, j + 1)); } } } // 判断是否是回文字串 for (let i = 0; i < arr.length; i++) { let arr2 = arr[i].split("").reverse().join(""); if (arr[i] == arr2) { arr3.push(arr[i]); } } // 找到回文字串中长度最长的字串 if (arr3.length > 0) { let longest = arr3.reduce(function (a, b) { return a.length > b.length ? a : b; }); return longest; } else { return s[0] } }, },
原文:https://www.cnblogs.com/lilililiwang/p/14840958.html