zoukankan      html  css  js  c++  java
  • CF832B Petya and Exam

    思路:

    模拟。

    实现:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 string a, b;
     5 int m, x, y, ok[30];
     6 
     7 bool solve()
     8 {
     9     if (y < x - 1) return false;
    10     int i = 0, j = 0;
    11     for (; i < x; i++, j++)
    12     {
    13         if (a[i] >= 'a' && a[i] <= 'z')
    14         {
    15             if (a[i] != b[j]) return false;
    16         }
    17         else if (a[i] == '?')
    18         {
    19             if (!ok[b[j] - 'a']) return false;
    20         }
    21         else
    22         {
    23             int tmp = j;
    24             for (; j < tmp + y - x + 1; j++)
    25             {
    26                 if (ok[b[j] - 'a']) return false;
    27             }
    28             j--;
    29         }
    30     }
    31     return j == y;
    32 }
    33 
    34 int main()
    35 {    
    36     string str;
    37     cin >> str;
    38     int n = str.length();
    39     for (int i = 0; i < n; i++)
    40     {
    41         ok[str[i] - 'a'] = 1;
    42     }
    43     cin >> a >> m;
    44     x = a.length();
    45     for (int i = 0; i < m; i++)
    46     {
    47         cin >> b;
    48         y = b.length();
    49         if (solve()) puts("YES");
    50         else puts("NO");
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    读书笔记--Linux Shell脚本攻略
    深入理解javascript原型链
    javascript基本类型及类型转换
    ECMAScript6 Promise
    git初体验
    走进git
    Dom编程优化
    go 递归实现快排
    go语言排序
    实现一个迭代器类
  • 原文地址:https://www.cnblogs.com/wangyiming/p/7258366.html
Copyright © 2011-2022 走看看