zoukankan      html  css  js  c++  java
  • hdu 6170

    题意:A,B2个字符串,.可以代替任意字符,*表示前面那个字符的任意次(0,1,2....,问是否完全匹配

    思路:dp[i][j]表示A第i个B第j个是否匹配

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=2502;
     5 
     6 char s1[N],s2[N];
     7 int dp[N][N];
     8 
     9 int main(){
    10     int t;
    11     cin>>t;
    12     while(t--){
    13         scanf("%s",s1+1);
    14         scanf("%s",s2+1);
    15         memset(dp,0,sizeof(dp));
    16         dp[0][0]=1;
    17         int n=strlen(s1+1),m=strlen(s2+1);
    18         for(int i=2;i<=m;i++)
    19             dp[0][i]=dp[0][i-2];
    20         for(int i=1;i<=n;i++){
    21             for(int j=1;j<=m;j++){
    22                 if(s2[j]=='*'){
    23                     if(dp[i][j-2]||dp[i][j-1]) dp[i][j]=1;
    24                     else if((s1[i]==s2[j-1] || ( s2[j-1] == '.'&& s1[i]==s1[i-1] ) ) && dp[i-1][j]) dp[i][j]=1;
    25                     else dp[i][j]=0;
    26                 }
    27                 else {
    28                     if(s1[i]==s2[j]||s2[j]=='.'){
    29                         if(dp[i-1][j-1]) dp[i][j]=1;
    30                         else dp[i][j]=0;
    31                     }
    32                     else dp[i][j]=0;
    33                 }
    34             }
    35         }
    36         if(dp[n][m]) printf("yes
    ");
    37         else printf("no
    ");
    38     }
    39     return 0;
    40 }
  • 相关阅读:
    $.ajax
    es6--之箭头函数
    vuex相关知识点
    grunt---grunt_test 测试用例
    git2--常用命令
    git命令
    百万程序员的苦恼-选择VB.NET还是C#
    在Linux上运行C#
    C#中的cookie编程
    C#编程让Outlook乖乖交出帐户密码
  • 原文地址:https://www.cnblogs.com/hhxj/p/7418417.html
Copyright © 2011-2022 走看看