psd面试—最长回文串模板
2018-03-27 20:22
148 查看
忽略字母大小写,求给定字符串去掉最长的回文子序列还有多长
#include<bits/stdc++.h>
using namespace std;
string s;
int longestPalindromeSubSequence1(string str)
{
int n=str.length();
vector<vector<int> > dp(n,vector<int>(n));
for(int j=0;j<n;j++){
dp[j][j]=1;
for(int i=j-1;i>=0;i--){
if(str[i]==str[j])
dp[i][j]=dp[i+1][j-1]+2;
else
dp[i][j]=max(dp[i+1][j],dp[i][j-1]);
}
}
return dp[0][n-1];
}
int longestPalindromeSubSequence2(string str){
int n=str.length();
vector<vector<int> > dp(n,vector<int>(n));
for(int i=n-1;i>=0;i--){
dp[i][i]=1;
for(int j=i+1;j<n;j++){
if(str[i]==str[j])
dp[i][j]=dp[i+1][j-1]+2;
else
dp[i][j]=max(dp[i+1][j],dp[i][j-1]);
}
}
return dp[0][n-1];
}
int main()
{
int length;
while(cin>>s)
{
for(int i = 0; i < s.size(); i++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
s[i] += 32;
}
length=longestPalindromeSubSequence2(s);
cout<<s.size()-length<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
string s;
int longestPalindromeSubSequence1(string str)
{
int n=str.length();
vector<vector<int> > dp(n,vector<int>(n));
for(int j=0;j<n;j++){
dp[j][j]=1;
for(int i=j-1;i>=0;i--){
if(str[i]==str[j])
dp[i][j]=dp[i+1][j-1]+2;
else
dp[i][j]=max(dp[i+1][j],dp[i][j-1]);
}
}
return dp[0][n-1];
}
int longestPalindromeSubSequence2(string str){
int n=str.length();
vector<vector<int> > dp(n,vector<int>(n));
for(int i=n-1;i>=0;i--){
dp[i][i]=1;
for(int j=i+1;j<n;j++){
if(str[i]==str[j])
dp[i][j]=dp[i+1][j-1]+2;
else
dp[i][j]=max(dp[i+1][j],dp[i][j-1]);
}
}
return dp[0][n-1];
}
int main()
{
int length;
while(cin>>s)
{
for(int i = 0; i < s.size(); i++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
s[i] += 32;
}
length=longestPalindromeSubSequence2(s);
cout<<s.size()-length<<endl;
}
return 0;
}
相关文章推荐
- psd面试(最长回文子串 == 最长公共子序列 lcs) 另附最长回文串算法
- POJ 3974 Palindrome【最长回文串(Manacher模板)】
- 最长回文串模板
- D:psd面试 (LCS最长公共子序列&最长回文子序列)第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
- 最长回文串——Manacher模板
- 最长回文---hdu3068 (回文串 manacher 算法模板)
- 最长回文串(manachar算法)模板
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 D psd面试(最长回文子序列,区间dp)
- Longest Palindromic Substring (最长回文串)【面试算法leetcode】
- hdu--3068 最长回文串(manachar模板)
- 求一个字符串的最长连续回文串(模板)
- psd面试(最长回文子序列+动态规划);
- A - 最长回文(马拉车算法模板)(回文串)
- 牛客网-psd面试(最长公共子序列&回文串)
- D psd面试 (动态规划求解最长回文子序列)
- hdu3068_最长回文串_Manacher(马拉车模板)
- 最长回文串模板 (Manacher's算法)o(n)复杂度
- 50款高质量的免费PSD网页模板下载(等四季)
- HDU 3294 Girls' research 【最长回文串+字符周期变换】
- hihoCoder #1032 最长回文串