hdu 1238 Substrings (最长相同连续子序列)
来源:互联网 发布:淘宝网企业店铺标志 编辑:程序博客网 时间:2024/06/10 00:18
http://acm.hdu.edu.cn/showproblem.php?pid=1238
求几个序列的最长相同子序列,这道题本来一直在想怎么用dfs方法解决,后来看了大牛的结题思路,才明白字符串的长度才100,穷举也可以过。
只要先找到最短的子序列,遍历出一个子序列,把它的顺逆序列分别保存到s1和s2中,再用strstr()函数就可以了。
代码:
#include<iostream>using namespace std;int T,n;char str[105][105],s1[105],s2[105];int main(){ cin >> T; int MIN,len,f,flag,MAX; while (T--) { flag = 1; MIN = 200; cin >> n; for (int i = 0; i < n; i++){ scanf("%s",str[i]); len = strlen(str[i]); if (MIN>len){ MIN = len; f = i; } } len = strlen(str[f]); MAX = 0; for (int i = 0; i < len; i++){ for (int j = i; j < len&&flag; j++){ for (int k = i; k <= j; k++){ s1[k-i] = str[f][k]; s2[j-k] = str[f][k]; } s1[j - i + 1] = s2[j - i + 1] = '\0'; int l = strlen(s1); if (l < MAX) continue; for (int k = 0; k < n; k++){ if (!strstr(str[k], s1) && !strstr(str[k], s2)){ flag = 0; break; } } if (l>MAX&&flag){ MAX = l; } }flag = 1; } cout << MAX << endl; } return 0;}
0 0
- hdu 1238 Substrings (最长相同连续子序列)
- HDU--1238-Substrings(-最长连续子串)
- HDU 1231 (最长连续子序列)
- hdu 2845 最长不连续子序列
- HDU 1231 最长连续子序列
- 连续最长子序列
- 最长连续子序列
- 最长连续子序列
- 最长连续子序列
- HDOJ 1238:Substrings 寻找最长子序列 解题报告
- HDU 1238 Substrings(求公共正反向连续子串)
- HDU 1238 Substrings (最长公共子串+DFS)
- acm_最长相同子序列
- hdu--1231 最长连续子序列(浙大版)
- hdu 1231最长连续子序列的和
- HDU 3308 最长上升连续子序列 (线段树)
- hdu 2845 Beans(最长不连续子序列和)
- HDU 3308 线段树。。最长连续上升子序列
- Formale System-BDD
- ROS 教程之 navigation : 用 move_base 控制自己的机器人(2)
- android中的空指针异常NullpointExcepiton
- 毕业设计
- 利用ecache实现自定义缓存框架
- hdu 1238 Substrings (最长相同连续子序列)
- R Sprache
- 影响页面浏览性能的css属性
- iOS 怎样切换横竖屏
- SDWebImage原理及使用
- ios autolayout 使用总结
- eclipse + maven + tomcat 热部署
- Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用
- backbone如何快捷获取view中el