zoukankan      html  css  js  c++  java
  • 字符串匹配

    牛牛有两个字符串A和B,其中A串是一个01串,B串中除了可能有0和1,还可能有'?',B中的'?'可以确定为0或者1。 寻找一个字符串T是否在字符串S中出现的过程,称为字符串匹配。牛牛现在考虑所有可能的字符串B,有多少种可以在字符串A中完成匹配。

    例如:A = "00010001", B = "??"
    字符串B可能的字符串是"00","01","10","11",只有"11"没有出现在字符串A中,所以输出3
     

    输入描述:

    输入包括两行,第一行一个字符串A,字符串A长度length(1 ≤ length ≤ 50),A中每个字符都是'0'或者'1'。
    第二行一个字符串B,字符串B长度length(1 ≤ length ≤ 50),B中的字符包括'0','1'和'?'。
    

    输出描述:

    输出一个整数,表示能完成匹配的字符串种数。

    示例1

    输入

    00010001
    ??

    输出

    3
    #include<bits/stdc++.h>
    using namespace std;
    string A,B;
    set<string> s;
    int main()
    {
        cin>>A>>B;
        int ans=0;
        for(int i=0;i<(int)A.size();i++){
            int j=i+B.size()-1;
            if(j>=A.size()) continue;
            string curA.substr(i,j-i+1);
            if(s.count(cur)) continue;
            s.insert(cur);
            bool flag=true;
            for(int k=0;k<B.size();k++){
                if(cur[k]!=B[k]){
                    if(B[k]=="?") continue;
                    else{
                        flag=false;
                        break;
                    }
                }
            }
            if(flag)
                ans++;
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    CentOS 6.5通过yum的方式安装MySql
    Hbase集群搭建
    Thread类的常见问题
    关hashMap跟hashTable的区别
    mysql 循环插入100w
    Centos 多个mysql数据库
    CentOS 搭建 FastDFS-5.0.5集群
    RPC
    dubbo简述
    自己去看dubbo源码
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602264.html
Copyright © 2011-2022 走看看