欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode每日一题

程序员文章站 2022-07-12 23:17:02
...

5.最长回文子串

// 5.最长回文子串
//baolifa
class Solution {
public:
	string longestPalindrome(string s) {
		string tmp = "";
		string res = "";
		for (int i=0;i<s.length();i++)
		{
			for (int j=i;j<s.length();j++)
			{
				tmp += s[j];
				string tmp1 = tmp;
				reverse(tmp1.begin(), tmp1.end());
				if (tmp1==tmp)
				{
					res = res.length() > tmp.length() ? res : tmp;
				}
			}
			tmp = "";
		}
		return res;
	}
};
//解法2
//将字符串s反转得到字符串rev,再求他们的最长公共子串,再判断该最长公共子串是否就是我们要找的最长回文子串。
class Solution {
public:
	string longestPalindrome(string s) {
		string tmp = "";
		string res = "";
		string rev = s;
		int len = 0;
		reverse(rev.begin(), rev.end());
		for (int i = 0; i < s.length(); i++)
		{
			for (int j = i; j < s.length(); j++)
			{
				tmp += s[j];
				if (tmp.length() < len)
				{
					continue;
				}
				else if (rev.find(tmp) != -1) {
					string tmp1 = tmp;
					reverse(tmp1.begin(), tmp1.end());
					if (tmp1==tmp)
					{
						len = tmp.length(); res = tmp;
					}
				}
				else
				{
					break;
				}
			}
			tmp = "";
		}
		return res;
	}
};