【LeetCode】 Longest Palindrome Substring
来源:互联网 发布:淘宝美工图片尺寸 编辑:程序博客网 时间:2024/04/30 09:09
题目链接:http://oj.leetcode.com/problems/longest-palindromic-substring/
题目描述:
Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
题目意思:找出给定字符串中最常的回文字串,输入保证有且仅有一个正确结果。
解法一:
暴力求解,时间复杂度O(n^2).提交会超时。
代码如下:
string longestPalindrome(string s) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int result = 0; int start = -1; int len = s.length(); if(len <= 0) return NULL; if(len == 1) return s; for(int i=0;i < len; ++i){ int j = i+1; while(j < len){ if( isPalindrome(s, i, j)){ int temp = j - i + 1; if(temp > result){ result = temp; start = i; } } j++; } } return s.substr(start, result); } bool isPalindrome(string s, int start, int end){ while(start < end){ if(s[start++] != s[end--]) return false; } return true; }
解法二:
暴力求解,时间复杂度O(n^2)。能通过,rp好吗!
思路:分别以每个位置为中心向两边扩展。
代码如下:
string longestPalindrome(string s) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int result = 0; int start = 0; int len = s.length(); if(len <= 0) return NULL; if(len == 1) return s; for(int i=0;i < len; ++i){ int f = i+1,b = i; int temp; while(b >=0 && f < len && s[b] == s[f]) b--, f++; temp = f - b - 1; if(temp > result){ result = temp; start = b + 1; } f = i+1, b = i-1; while(b >=0 && f < len && s[b] == s[f]) b--, f++; temp = f - b - 1 ; if(temp > result){ result = temp; start = b + 1; } } return s.substr(start, result); }
未完待续…………DP和O(n)
0 0
- 【LeetCode】 Longest Palindrome Substring
- 【Leetcode】Longest Palindrome Substring
- 【Leetcode】Longest palindrome substring
- leetcode 5: Longest Palindrome Substring
- [LeetCode] Longest Palindrome Substring 详细分析
- [LeetCode] 4. Longest Palindrome Substring 分析+代码
- longest Palindrome substring
- Longest palindrome substring
- Longest Palindrome Substring
- 5 longest palindrome substring
- longest palindrome substring
- leetcode Longgest Palindrome Substring
- 【Leetcode】Longest Palindrome
- 【Leetcode】409. Longest Palindrome
- [LeetCode]409. Longest Palindrome
- LeetCode[409] Longest Palindrome
- LeetCode 409. Longest Palindrome
- [LeetCode]--409. Longest Palindrome
- 剖析史玉柱
- 两个链表的第一个公共节点
- html必须的转换
- 第一篇----做一只快乐的小蜜蜂
- uva11732 - strcmp() Anyone? 前缀树
- 【LeetCode】 Longest Palindrome Substring
- dijkstra算法原理概述
- 注册表查询桌面壁纸路径
- 对凯立德2013秋季旗舰版的再认识(含3D核心文件的下载)
- java中使用存储过程
- Compressed Sensing 3.0
- 初识云计算day015
- Opencv中图像的缩放处理
- 一种较为便捷的快排写法