首页 技术 正文
技术 2022年11月17日
0 收藏 445 点赞 4,377 浏览 1342 个字

1006给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。

比如两个串为: abcicbaabdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。 

输入

第1行:字符串A
第2行:字符串B
(A,B的长度 <= 1000)

输出

输出最长的子序列,如果有多个,随意输出1个。

输入样例

abcicba
abdkscab

输出样例

abca解:dp题,画一画表格可以帮助理解。
 #include<stdio.h>
#include<string.h> #define CLR(x) memset(x, 0, sizeof x)
#define MAX(a,b) (a > b ? a : b) char a[], b[],c[];
int dp[][]; int main()
{
while (scanf_s("%s%s", a,, b,) != EOF)
{
int lena = strlen(a),lenb=strlen(b);
for (int i = ; i <= lena; i++)
{
for (int j = ; j <= lenb; j++)
{
if (a[i - ] == b[j - ]) dp[i][j] = dp[i - ][j - ] + ;
else dp[i][j] = MAX(dp[i - ][j], dp[i][j - ]);
}
}
for (int i = dp[lena][lenb],j = ; i > ;)
{
if (dp[lena][lenb] > dp[lena - ][lenb]&& dp[lena][lenb] > dp[lena][lenb - ])
{
c[i-]=a[lena - ];
lena--; lenb--;
i--;
}
else
{
int mode = dp[lena - ][lenb]>dp[lena][lenb - ] ? :;
if (mode) lena--;
else lenb--;
}
}
printf("%s\n",c);
}
}

1092

回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。 

输入

输入一个字符串Str,Str的长度 <= 1000。

输出

输出最少添加多少个字符可以使之变为回文字串。

输入样例

abbc

输出样例

2解:求最长字符串的变形。针对上一题的做法优化了一下空间复杂度。
 #include<stdio.h>
#include<string.h>
#define Max(a,b) ((a)>(b)?(a):(b))
char a[];
int dp[][];
int main()
{
while (scanf_s("%s", a, ) != EOF)
{
int len = strlen(a), ans, tmp = ;
memset(dp, , sizeof dp);
for (int i = ; i < len; ++i)
{
for (int j = len - ; j >= ; --j)
{
if (a[i] == a[j]) dp[tmp][j] = dp[tmp ^ ][j + ] + ;
else dp[tmp][j] = Max(dp[tmp ^ ][j], dp[tmp][j + ]);
}
tmp ^= ;
}
ans = len - dp[tmp ^ ][];
printf("%d\n", ans);
}
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849