C++动态规划之最长公子序列实例
2019/7/10 23:09:22
本文主要是介绍C++动态规划之最长公子序列实例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例讲述了C++动态规划之最长公子序列解决方法。分享给大家供大家参考。具体分析如下:
问题描述:
求出两个字符串中的最长公子序列的长度。
输入:
csblog
belong
输出:
max length = 4
实现代码:
#include <stdio.h> #include <string.h> int arr[200][200]; /* 表示str1的前i位和str2的前j位的最长公子序列的长度 */ int main() { char str1[100],str2[100]; /* 输入数据 */ scanf("%s%s",str1,str2); int len1 = strlen(str1); int len2 = strlen(str2); /* 初始化数组 */ int i,j; for(i = 0 ; i <= len1 ; ++i) { for(j = 0 ; j <= len2 ; ++j) arr[i][j] = 0; } /* 计算 */ for(i = 1 ; i <= len1 ; ++i) { for(j = 1 ; j <= len2 ; ++j) { /* 字符相同,则最长公子序列长度加1 */ if(str1[i - 1] == str2[j - 1]) { arr[i][j] = arr[i - 1][j - 1] + 1; } else /* 当前字符不相同,则取上次选择的最大值做为当前结果 */ { arr[i][j]=arr[i][j-1]>arr[i-1][j]?arr[i][j-1]:arr[i-1][j]; } } } /* 输出结果 */ printf("max length = %d\n",arr[len1][len2]); return 0; }
希望本文所述对大家的C++程序设计有所帮助。
这篇关于C++动态规划之最长公子序列实例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享