剑指Offer----扩展:构造回文(腾讯)

原创 2016年08月28日 19:32:54

问题描述:

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。


方法一:


将输入的字符串翻转,利用动态规划求两个字符串的最大公共子序列!

源代码


#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>//memory函数

using namespace std;

int dp[1010][1010];

int getLCS(string str)
{
	string str2(str);
	reverse(str2.begin(), str2.end());
	int len = str.length();
	memset(dp, 0, sizeof(dp));
	for (int i = 0; i < len; ++i)
	{
		for (int j = 0; j < len; ++j)
		{
			if (str[i] == str2[j])
				dp[i + 1][j + 1] = dp[i][j] + 1;
			else
				dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j]);
		}
	}
	return dp[len][len];
}

int main()
{
	string s;
	while (cin >> s)
	{
		cout << s.length()-getLCS(s) << endl;
		s.clear();
	}

	printf("%s %s\n", __DATE__, __TIME__);
	system("pause");
	return 0;
}

运行结果:
abcda
2
goole
3
abcdefgdscasb
6
^Z
Aug 28 2016 19:34:21
请按任意键继续. . .




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

腾讯2017年实习生招聘编程题——构造回文

虽然这是实习生招聘的第一题,但是对我这种不太了解动态规划和LCS(Longest Common Sequence)相关算法的学渣来说,还是有比较多坑的......只隐约记得以前在SOJ见过类似的题目,...

腾讯笔试编程题:构造回文(C++)

题目: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。 如何删除才能使得回文串最长呢? 输出需要删除的字符个数。 输入描述: 输入数据有多组,每组包含...
  • lxubin
  • lxubin
  • 2016年09月03日 16:42
  • 1825

构造回文(腾讯2017实习生)

构造回文(腾讯2017实习生) 文本比较算法Ⅱ——Needleman/Wunsch算法http://www.cnblogs.com/grenet/archive/2010/06/03/175045...
  • BestZem
  • BestZem
  • 2016年07月03日 15:09
  • 433

腾讯2017暑期实习生编程题之构造回文

题目描述: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。 输入描述: 输入数据有多组,每组包含一个字符串s...

构造回文串(腾讯2014暑期实习生)

题目:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1...
  • hyqsong
  • hyqsong
  • 2016年08月05日 14:57
  • 336

腾讯编程题:构造回文

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。 输入描述:输入数据有多组,每组包含一个字符串s,且保证:1...
  • zjwcdd
  • zjwcdd
  • 2016年09月05日 14:23
  • 266

腾讯17年暑期实习生笔试题 - 构造回文

问题给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述输入数据有多组,每组包含一个字符串s,且保证:1...

腾讯2017暑期实习生编程题-A-构造回文

ACM模版描述题解很久很久以前,大概是去年这个时候,在51上做过一道求原串如何删除才能使得回文串最长,输出最长长度。相比这个问题,不过是少了一步,只需再多一步总数-最长回文串长度即可,至于最长回文串长...
  • f_zyj
  • f_zyj
  • 2017年03月07日 23:07
  • 234

腾讯面试题-回文构造

题目描述:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1...

剑指Offer----扩展:字符移位(腾讯)

问题描述: 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗? 输入描述:输入数据有多组,每组包含一个字符串s,且保证...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指Offer----扩展:构造回文(腾讯)
举报原因:
原因补充:

(最多只允许输入30个字)