zoukankan      html  css  js  c++  java
  • URAL 1102. Strange Dialog

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1102

    正着做9种情况:

    in

    input

    inputon

    inputone

    out

    output

    outputon

    outputone

    one

    反着做貌似更简单一些,情况更少一点。

    我是正着做的。

     1 #include <cstdio>
     2 
     3 const int MAXN = 10000000 + 5;
     4 
     5 char str[MAXN];
     6 
     7 bool Judge()
     8 {
     9     if ( !(str[0] == 'o' || str[0] == 'p' || str[0] == 'i') ) return false;
    10     int i = 0;
    11     while ( str[i] != '\0' )
    12     {
    13         switch( str[i] )
    14         {
    15         case 'o':
    16             if ( str[i+1] == 'u' && str[i+2] == 't' )
    17             {
    18                 if ( str[i+3] == 'p' && str[i+4] == 'u' && str[i+5] == 't' )
    19                 {
    20                     if ( str[i+6] == 'o' && str[i+7] == 'n' )
    21                     {
    22                         i += 8;
    23                         if ( str[i] == 'e' ) ++i;
    24 
    25                     }
    26                     else i += 6;
    27                 }
    28                 else i += 3;
    29             }
    30             else if ( str[i+1] == 'n' && str[i+2] == 'e' )
    31                 i += 3;
    32             else return false;
    33             break;
    34         case 'i':
    35             if ( str[i+1] == 'n' )
    36             {
    37                 if ( str[i+2] == 'p' && str[i+3] == 'u' && str[i+4] == 't' )
    38                 {
    39                     if ( str[i+5] == 'o' && str[i+6] == 'n' )
    40                     {
    41                         i += 7;
    42                         if ( str[i] == 'e' ) ++i;
    43                     }
    44                     else i += 5;
    45                 }
    46                 else i += 2;
    47             }
    48             else return false;
    49             break;
    50         case 'p':
    51             if ( str[i+1] == 'u' && str[i+2] == 't' && str[i+3] == 'o' && str[i+4] == 'n' ) i += 5;
    52             else return false;
    53             break;
    54         default :return false;
    55         }
    56     }
    57     return true;
    58 }
    59 
    60 int main()
    61 {
    62     int n;
    63     scanf( "%d", &n );
    64     while ( n-- )
    65     {
    66         scanf( "%s", str );
    67         if ( Judge() ) puts("YES");
    68         else puts("NO");
    69     }
    70     return 0;
    71 }
  • 相关阅读:
    HTML 基础 元素 标签
    HTML5 元素介绍
    网站程序 模板下载 下载 ftp
    域名解析和空间绑定
    如何选择云虚拟主机操作系统?
    网站备案查询
    响应式网站01
    项目中使用百度统计和友盟统计
    项目中使用http referer,为了盗取图片资源
    vue-awesome-swiper中的数据异步加载
  • 原文地址:https://www.cnblogs.com/GBRgbr/p/2613425.html
Copyright © 2011-2022 走看看