您的位置:首页 > 其它

Longest Palindromic Substring

2015-07-03 11:12 281 查看
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length ofS is 1000, and there exists one unique longest palindromic substring.

问题描述:给定一个字符串,在这个字符串中寻找最长的回文子字符串

#include"stdafx.h"
#include<iostream>
using namespace std;
//求得最大回文子序列
class Solution {
private:
	int max;
	char str[1000];
public:
	Solution()
	{
		max = 0;
		memset(str, 0, 1000);
	}
	void checkPain(const char* start, const char* end)
	{
		int len = end - start + 1;
		int index_1 = 0;
		bool mark = false;
		if (len % 2 != 0)
		{
			while (index_1 != len / 2)
			{
				if ((start + index_1)[0] == (end - index_1)[0])
				{
					index_1++;
					continue;
				}
				else
				{
					mark = true;
					break;
				}
			}

		}
		else
		{
			while (index_1 < (len / 2))
			{
				if ((start + index_1)[0] == (end - index_1)[0])
				{
					index_1++;
					continue;
				}
				else
				{
					mark = true;
					break;
				}
			}
		}
		if (!mark)
		{
			//此为回文序列
			if (len > max)
			{
				max = len;
				memcpy(str, start, len);
			}
		}

	}
	string longestPalindrome(string s) {
		const char* index = s.c_str();
		const	char* start = index;
		const char* re_end = index + s.length();
		const char*end = start;
		for (; start != re_end; start++)
		{
			end = start;
			for (; end != re_end; end++)
			{
				checkPain(start, end);
			}
		}
		string result = str;
		return result;
	}
};
int main()
{
	Solution ss;
	std::cout << ss.longestPalindrome("BBABCBCAB").c_str();
	return 0;
}


提交了,但是leetcode提示运行超时,但是现在俺也就这样了。。。静等更新哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: