我是靠谱客的博主 妩媚火龙果,最近开发中收集的这篇文章主要介绍蓝桥杯 真题 试题 历届真题 蓝肽子序列【第十一届】【决赛】【研究生组】题目思路代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

拿下拿下

题目

点击链接查看在这里插入图片描述

思路

与最长公共子序列的思路一样,只是将对字符的比较换成了对单词的比较。DP数组的维度也变成了单词的个数。只需要将两个序列的单词分别取出来存进容器里即可。

代码

#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;

string s1,s2;

void get(string s,vector<string> &l) //把每个蓝泰序列中的蓝泰拿出来放进vector 
{
  
  int i=0;
  while(i<s.length())
  {
    if(s[i]>='A'&&s[i]<='Z')
    {
    	
    	string ans;
    	ans+=s[i];i++;
    	while(s[i]>'Z')
    	{
    		ans+=s[i];
    		i++;
    	}
    	l.push_back(ans);
    }
  }

}

int main()
{
  // 请在此输入您的代码
  cin>>s1>>s2;
  vector<string> ss1;
  vector<string> ss2;
  get(s1,ss1);get(s2,ss2);
  int n=ss1.size();int m=ss2.size();
  int dp[n+1][m+1];
  for(int i=0;i<=n;i++)
    for(int j=0;j<=m;j++)
      dp[i][j]=0;
  for(int i=1;i<=n;i++)
  {
    for(int j=1;j<=m;j++)
    {
      if(ss1[i-1]==ss2[j-1])
      {
        dp[i][j]=dp[i-1][j-1]+1;
      }
      else
        dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
    }
  }
  cout<<dp[n][m]<<endl;

  return 0;
}

最后

以上就是妩媚火龙果为你收集整理的蓝桥杯 真题 试题 历届真题 蓝肽子序列【第十一届】【决赛】【研究生组】题目思路代码的全部内容,希望文章能够帮你解决蓝桥杯 真题 试题 历届真题 蓝肽子序列【第十一届】【决赛】【研究生组】题目思路代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部