博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 10100- Longest Match(dp之最长公共子序列)
阅读量:2029 次
发布时间:2019-04-28

本文共 1487 字,大约阅读时间需要 4 分钟。

题目地址:

题意:求两组字符串中最大的按顺序出现的相同单词数目。
思路:将字串中的连续的字母认作一个单词,依次计算出两个字符串中的单词,其中第1个字符串的单词序列为t1.word[1]…..t1.word[n],第2个字符串的单词序列为t2.word[1]…..t2.word[m]。然后将每个单词当成一个字符,使用LCS算法计算出两个字符串的最长公共子序列,该序列的长度就是最长匹配。

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-7;const int Maxn=1010;int dp[Maxn][Maxn];//str1中的前i个单词和s2中前j个单词中匹配的最多单词数。string str1,str2;struct node{ int num; string word[Maxn];}t1,t2;void devide(string s,struct node &t){ int len=s.size(); t.num=1; for(int i=0;i<1000;i++) t.word[i].clear(); for(int i=0;i
='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&&s[i]<='9')) t.word[t.num]+=s[i]; else t.num++; } int cnt=0; for(int i=1;i<=t.num;i++) if(!t.word[i].empty()) t.word[++cnt]=t.word[i]; t.num=cnt;}int main(){ int icase=1; while(!cin.eof()){ getline(cin,str1); devide(str1,t1); getline(cin,str2); devide(str2,t2); printf("%2d. ",icase++); if(str1.empty()||str2.empty()){ printf("Blank!\n"); continue; } for(int i=0;i<=t1.num;i++) dp[i][0]=0; for(int i=0;i<=t2.num;i++) dp[0][i]=0; for(int i=1;i<=t1.num;i++) for(int j=1;j<=t2.num;j++){ if(t1.word[i]==t2.word[j]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } printf("Length of longest match: %d\n",dp[t1.num][t2.num]); } return 0;}

转载地址:http://hdsaf.baihongyu.com/

你可能感兴趣的文章
ios 将Log日志重定向输出到文件中保存
查看>>
Bluetooth: ATT and GATT
查看>>
蓝牙4.0设计 CC2540
查看>>
iOS模拟器调试BLE
查看>>
Java 语言中的函数编程
查看>>
Linux 的启动流程
查看>>
Http多线程下载与断点续传分析
查看>>
Erlang环境搭建 for mac os
查看>>
最短路径算法——Dijkstra and Floyd算法
查看>>
那些不能错过的XCode插件
查看>>
对比iOS中的四种数据存储
查看>>
iOS获取音频或者视频是时间长度
查看>>
ios 调用google api 实现语音识别
查看>>
Introduction to C++ for iOS Developers: Part 1
查看>>
Xcode非ARC项目中设置部分文件ARC支持
查看>>
UIWindow & UIWindowLevel笔记
查看>>
Creating an Xcode4 Plugin
查看>>
iOS截取视频某一帧图片(关键帧,AVAssetImageGenerator)
查看>>
SDWebImage缓存图片的机制
查看>>
更轻量的 View Controllers
查看>>