lanqiao OJ 1030 蓝肽子序列

简介: lanqiao OJ 1030 蓝肽子序列

1.蓝肽子序列 - 蓝桥云课 (lanqiao.cn)

最长公共子序列变形简单题

字符串处理一下, 把每一个子串  看成一个字符就可以了

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
const int N = 1010 , INF = 1e9 ;
string st1[N],st2[N] ;
int f[N][N] ;
int main(){
  string a, b ;cin >> a >> b ;
  int n = a.size() , m = b.size() ;
  int q = 0 ;
  for(int i = 0 ; i < n ; i ++){
    if(a[i] >= 'A' && a[i] <= 'Z') q++ ;
    st1[q] += a[i] ;
  }
  int w = 0 ;
  for(int i = 0 ; i < m  ;i ++){
    if(b[i] >= 'A' && b[i] <='Z') w ++ ;
    st2[w] += b[i] ;
  }
  memset(f,-INF, sizeof(f)) ;
//这是对输入的一次遍历,输出看看我们的输入有没有错误 
//  for(int i = 1 ; i <= q ; i ++){
//      cout<< st1[i] << " " ;
//  }
//  cout << endl ;
//  for(int i = 1 ; i <= w ; i ++){
//    cout << st2[i] << " " ; 
//  }
//  cout << endl ;
 
  for(int i = 1 ; i <= q ; i ++){
    for(int j = 1 ; j <= w ; j ++){
      f[i][j] =max(f[i-1][j] , f[i][j-1]) ;
      if(st1[i] == st2[j]) f[i][j] = max(f[i-1][j-1] + 1 , f[i][j]) ; 
    }
  }
  cout << f[q][w] << endl ;
  return 0 ;
}
目录
相关文章
|
1月前
lanqiao OJ 689 四阶幻方
lanqiao OJ 689 四阶幻方
24 0
|
1月前
lanqiao OJ 649 算式900
lanqiao OJ 649 算式900
13 1
|
1月前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
14 2
|
1月前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
12 1
|
30天前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
12 0
|
1月前
acwing 1016 最大上升子序列和
acwing 1016 最大上升子序列和
23 0
|
1月前
lanqiao OJ 2143 最少刷题数
lanqiao OJ 2143 最少刷题数
12 0
|
5月前
|
C++
【洛谷 P1706】全排列问题 题解(全排列)
该问题要求按字典序输出从1到n的所有不重复排列。输入为整数n,输出为每行一个的数字序列,每个数字占5个宽度。样例输入3,输出6行全排列。代码使用C++,通过`next_permutation`函数生成所有排列。注意n的范围是1到9。
36 0
|
6月前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
55 1
|
6月前
|
JavaScript
代码随想录 Day48 动态规划16 T647 回文子串 T516最长回文子序列
代码随想录 Day48 动态规划16 T647 回文子串 T516最长回文子序列
42 0
下一篇
无影云桌面