给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
来源:互联网 发布:云计算工程师工资多少 编辑:程序博客网 时间:2024/09/21 09:06
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数。
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出一个整数,代表最少需要删除的字符个数。
输入例子:
abcda
输出例子:
2
2
#include <iostream>#include <string.h>#include <algorithm>using namespace std;const int MAXN=1010;int temp[MAXN][MAXN];//先求s的反串reverse,然后求他们的最长的公共子序列,要删除的字符个数就能知道//时间复杂度O(N^2)int getRemoveNumber(string &s1){ string s2(s1); reverse(s2.begin(),s2.end()); int len=s1.length(); memset(temp,0,sizeof temp); for(int i=0;i<len;++i) { for(int j=0;j<len;++j) { if(s1[i]==s2[j]) temp[i+1][j+1]=temp[i][j]+1; else temp[i+1][j+1]=max(temp[i][j+1],temp[i+1][j]); } } return len-temp[len][len];}int main(){ string s; while(cin>>s) { cout<<getRemoveNumber(s)<<endl; } return 0;}
0 0
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
- 腾讯 2017 暑假实习生编程题(一):给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
- 给定一个字符串a,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长? 输出需要删除的字符个数。
- 2016腾讯笔试题,删除字符串中的字符,使得剩下的字符串是回文串,如何删除使得回文串最长
- 2016腾讯笔试题,删除字符串中的字符,使得剩下的字符串是回文串,如何删除使得回文串最长
- 动态规划问题--最长公共子序列(LCS)问题--删除一些字符使得剩下的是一个回文子串
- 最大公共子序列(删除字符使得剩下的是回文串)
- 构造回文(删除字符使得回文子串最长)
- 给定一个字符串s,找出最长的回文子串
- 给定字符串,删除最少的字符,使剩下的字符串成为回文串
- 通过最长公共子串求得使得一个串变为回文串的最少添加字符
- 给定一个字符串,切分该字符串,使得到的子串都是回文字符串,计算最少的切分次数。
- 给一个字符串,在后边最短添加什么,才能使得整体变成回文串
- 求两字符串最长公共子序列LCS的应用—删除字符串的字符剩下回文串
- 【codeforces 724D】【贪心】 Dense Subsequence 【一个字符串,按照一定的区间要求从中选出一些字符,使得这串字符的sort后字典序最小】
- 最少需要删除多少个字符才能使字符串S变为回文串
- 【2013微软校招面试题】求给定的一个字符串最小需要添加多少个字符才能成为回文串
- 【五】Android -时间显示问题
- 基于Opengl的画圆—中心画圆算法
- 6.3 Python class 运算符重载
- lintcode-->形状工厂
- 【六】Android Adapter接口
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
- 贴片安全.........
- JSP取得绝对路径
- 逆元的两种求法
- [Android N]MediaRecorder系列之StagefrightRecorder录制TS流flow(一)
- 计算几何-转载
- centos6.5下lamp环境的搭建(源码编译安装)
- 36. Valid Sudoku
- 【七】Java,XML,Android 删除各种注释内容