leetcode编程记录5 #5 Longest Palindromic Substring

来源:互联网 发布:java编程视频 编辑:程序博客网 时间:2024/06/08 12:26

leetcode编程记录5 #5 Longest Palindromic Substring

标签(空格分隔): leetcode


这还是一道有关字符串的问题,主要是关于回文子字符串的问题,题目如下:
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”

题目分析与解题思路:
这道题给定一个字符串,要求我们找出最长的回文子字符串。回文的意思是说这条字符串正着读和反着读都没有问题,而最长和子字符串也好理解,就是对给定字符串删头或者去尾得到一条最长的串。这道题最简单的做法可以采用暴力解法,即枚举法,一个个找,c++代码如下:

#include <string>class Solution{public:    string longestPalindrome(string s)    {        for(int i = 0; i < s.size(); i++)        {            for(int j = 0; j <= i; j++)            {                if(ifPalindrome(s.substr(j, s.size() - i)) == true)                {                    return s.substr(j, s.size() - i);                }            }        }        return nullptr;    }    bool ifPalindrome(string s)    {        for (int i = 0, j = s.size()- 1; i <= j; i++, j--)        {            if(s[i] != s[j])            {                return false;            }        }        return true;    }};