摘要:回文的意思就是反转字符串后和原字符串相等。因为这种想法没次都是两边同时扩展。所以要分目标字符串长度为奇数目标字符串为偶数两种情况。
题目详情
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.想法题目的意思是输入一个字符串,我们要找到这个字符串的最长的满足回文条件的子字符串。
回文的意思就是反转字符串后和原字符串相等。Example:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example:
Input: "cbbd"
Output: "bb"
这道题一个比较好的想法是以遍历到的每个元素为起始点,向两边扩展,直到找到满足以这个元素为中心的最长回文字符串。
因为这种想法没次都是两边同时扩展。所以要分目标字符串长度为奇数、目标字符串为偶数两种情况。进行两次扩展。
Java解法private int maxLen,low; public String longestPalindrome(String s){ int length = s.length(); if(length < 2)return s; for(int i=0;ijavaScript解法= 0 && end < s.length() && (s.charAt(begin)== s.charAt(end))){ begin --; end ++; } if(maxLen < end-begin-1){ low = begin+1; maxLen = end-begin-1; } }
这里面我用的是全局变量。没次还要重新赋值,感觉有点蠢=..=
/** * @param {string} s * @return {string} */ var maxLen = 0; var low = 0; var longestPalindrome = function(s) { var length = s.length; if(length < 2){ return s; } for(var i=0;i= 0 && end < s.length && (s[start] == s[end])){ start --; end ++; } if(maxLen < end-start - 1){ low = start + 1; maxLen = end-start-1; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68625.html
摘要:题目解析题目是要找出最长的回文字符串,拿到题目的第一反应是遍历子串,然后一直替换最长的子字符串即可了。但是这种解法遇到极端输入状况就会超时,指定的最长长度为,遍历子串需要两次循环,判断回文需要一次循环,所以总的效率为,那么极端状况会超时。 题目 Given a string s, find the longest palindromic substring in s. You may ...
摘要:难度题目是说给出一个字符串求出这个字符串的最长回文的子串回文是指前后完全对称的字符串像是之类的都算是回文奇数字母的回文和偶数字母的回文中心是不一样的奇数字母比如的中心在中间字母上偶数字母比如的回文在中间两字母的中心上由此可见回文中心点实际上 Given a string s, find the longest palindromic substring in s. You may as...
摘要:这种解法中,外层循环遍历的是子字符串的中心点,内层循环则是从中心扩散,一旦不是回文就不再计算其他以此为中心的较大的字符串。 Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may assume that the maximum length ...
摘要:题目即求最长回文子序列原题链接此篇博客仅为学习记录我的解法及代码暴力解决,用及进行两层遍历循环中套一层循环,用遍历,求最长回文序列字符串,同时用变量记录最长子序列这种写法很暴力,效率很低,一层循环,一层循环,回文序列对比一层,时间复杂度为辣 题目: Given a string s, find the longest palindromic substring in s. You ma...
摘要:一题目最长回文子串给定一个字符串,找到中最长的回文子串。你可以假设的最大长度为。示例输入输出注意也是一个有效答案。 一、题目 最长回文子串: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: babad输出: bab注意: aba 也是一个有效答案。 示例 2: 输入: cbbd输出: bb 二、我的答案 思路 1.排...
阅读 3041·2021-11-24 10:34
阅读 3292·2021-11-22 13:53
阅读 2587·2021-11-22 12:03
阅读 3572·2021-09-26 09:47
阅读 2980·2021-09-23 11:21
阅读 4673·2021-09-22 15:08
阅读 3242·2021-07-23 10:59
阅读 1225·2019-08-29 18:31