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 ;
}
目录
相关文章
|
3天前
lanqiao OJ 1388 寒假作业
lanqiao OJ 1388 寒假作业
15 0
|
3天前
lanqiao OJ 689 四阶幻方
lanqiao OJ 689 四阶幻方
10 0
|
3天前
lanqiao OJ 389 摆花
lanqiao OJ 389 摆花
8 2
|
3天前
lanqiao OJ 649 算式900
lanqiao OJ 649 算式900
10 1
|
3天前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
8 1
|
1天前
lanqiao oj 1050 补给
lanqiao oj 1050 补给
8 0
|
1天前
lanqiao oj 1085 小猪存钱罐
lanqiao oj 1085 小猪存钱罐
6 0
|
2天前
lanqiao OJ 1217 求立方根
lanqiao OJ 1217 求立方根
7 0
|
2天前
lanqiao OJ 1591 “123”
lanqiao OJ 1591 “123”
9 0
|
3天前
lanqiao OJ 149 长草
lanqiao OJ 149 长草
6 0