leetcode 第五题 最长回文字串

题目描述:

给你一个字符串 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