zoukankan      html  css  js  c++  java
  • Spring-1-A Post Robot(HDU 5007)解题报告及测试数据

    Post Robot

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K 

    Problem Description

    DT is a big fan of digital products. He writes posts about technological products almost everyday in his blog.

    But there is such few comments of his posts that he feels depressed all the day. As his best friend and an excellent programmer, DT asked you to help make his blog look more popular. He is so warm that you have no idea how to refuse. But you are unwilling to read all of his boring posts word by word. So you decided to write a script to comment below his posts automatically.

    After observation, you found words “Apple” appear everywhere in his posts. After your counting, you concluded that “Apple”, “iPhone”, “iPod”, “iPad” are the most high-frequency words in his blog. Once one of these words were read by your smart script, it will make a comment “MAI MAI MAI!”, and go on reading the post.

    In order to make it more funny, you, as a fan of Sony, also want to make some comments about Sony. So you want to add a new rule to the script: make a comment “SONY DAFA IS GOOD!” when “Sony” appears.

    Input

    A blog article described above, which contains only printable characters(whose ASCII code is between 32 and 127), CR(ASCII code 13, ‘ ’ in C/C++), LF(ASCII code 10, ‘ ’ in C/C++), please process input until EOF. Note all characters are case sensitive.

    The size of the article does not exceed 8KB.

    Output

    Output should contains comments generated by your script, one per line.

    Sample Input

    Apple bananaiPad lemon ApplepiSony

    233

    Tim cook is doubi from Apple

    iPhoneipad

    iPhone30 is so biiiiiiig Microsoft

    makes good App.

    Sample Output

    MAI MAI MAI!

    MAI MAI MAI!

    MAI MAI MAI!

    SONY DAFA IS GOOD!

    MAI MAI MAI!

    MAI MAI MAI!

    MAI MAI MAI!

    题解:上手题,使用string标准库函数 find(string str,int i),返回值为从i开始找到str为止的第一个位置,所以使用pos-i==0 判断当前位置是否匹配。find()函数找不到匹配字符串时返回-1。

    以下是代码:        

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <cctype>
    #include <sstream>
    #include <queue>
    using namespace std;
     
    #define F(i,s,e) for(int i = s;i<e;i++)
    #define ss(x) scanf("%d",&x)
    #define write() freopen("1.in","r",stdin)
    #define W(x) while(x)
     
    string str[4]={"iPod","iPad","iPhone","Apple"};
    int main(){
        //write();
        string s;
        W(getline(cin,s)){
            int len = s.length();
            F(i,0,len){
                F(j,0,4){
                    int pos = s.find(str[j],i);
                    if(pos - i ==0){
                        cout << "MAI MAI MAI!"<<endl;
                        break;
                    }
                }
                int pos = s.find("Sony",i);
                if(pos - i ==0)cout << "SONY DAFA IS GOOD!"<<endl; 
            }  
        }  
    }
    

      

     
  • 相关阅读:
    BZOJ 4769: 超级贞鱼 逆序对 + 归并排序
    BZOJ 4897: [Thu Summer Camp2016]成绩单 动态规划
    luogu 4059 [Code+#1]找爸爸 动态规划
    CF718C Sasha and Array 线段树 + 矩阵乘法
    计蒜客 2238 礼物 期望 + 线段树 + 归并
    BZOJ 2157: 旅游 (结构体存变量)
    BZOJ 3786: 星系探索 ETT
    BZOJ 3545: [ONTAK2010]Peaks 启发式合并 + 离线 + Splay
    Spring的几种初始化和销毁方法
    SpringCloud之Zuul高并发情况下接口限流(十二)
  • 原文地址:https://www.cnblogs.com/gzdaijie/p/4311706.html
Copyright © 2011-2022 走看看