我們來自五湖四海,不為別的,只因有共同的愛好,為中國互聯網發展出一分力!

Angry Grammar Nazi

2013年10月08日21:03 閱讀: 20613 次
Angry Grammar Nazi
 
1、給出的幾個要處理的字符串沒有重復性(子串),不必考慮某個單詞是算在哪個種類中;
2、給出的幾個要處理的字符串(除了“lol”)都是單詞或短語,可以直接搜索
3、給出的處理長串沒有前導空格也沒有后導空格,不必考慮多余空格處理;
4、每一句是一行,不必考慮結束標志,直接用gets()接收輸入的字符串,每次輸入是一句。
5、沒處理完一個“單詞”,把搜索的起點移到該“單詞”后面,繼續搜索,直到搜索遇到字符串結束標志
 
20114045007 A Accepted GNU C++ 0 ms 860 KB [ 1211 B ] 2013-09-29 09:40:56
 
<span style="font-size:18px">#include<stdio.h>  
#include<string.h>  
int main()  
{  
    int t,sum;  
    char x[105],*i;  //存儲輸入輸出的待處理的字符串  
    int j;  
    scanf("%d",&t);  
    getchar();  //t后面有個空格和回車,吸收空格,保證后面數據輸入的正確性  
    while(t--)  
    {  
        sum=0;  
        x[0]=' ';  //串前加入前導空格  
        gets(x+1);  //輸入待處理字符串  
        int strx=strlen(x);  
        x[strx]=' ';  //加入后導字符串  
        x[strx+1]='\0';   //添加結束標志,strstr()查找成功或遇字符串結束符,結束查找  
        i=x;  //從字符串開始位置開始處理  
        while(strstr(i," u "))   //處理字符串中單獨的u的單詞  
        {  
            sum++;  
            i=strstr(i," u ")+2;    //往后2個位置可以濾過該“單詞”  
        }  
        i=x;  
        while(strstr(i," ur "))  
        {  
            sum++;  
            i=strstr(i," ur ")+3;  
        }  
        i=x;  
        while(strstr(i," would of "))  
        {  
            sum++;  
            i=strstr(i," would of ")+9;  
        }  
        i=x;  
        while(strstr(i," should of "))  
        {  
            sum++;  
            i=strstr(i," should of ")+10;  
        }  
        i=x;  
        while(strstr(i,"lol"))   //查找單詞中有“lol”的單詞,  
        //不管他有幾個該子串,都只計算一次,只要確定單詞中是否有該子串即可  
        //要是有的話,就計數,并跳過該單詞  
        {  
            sum++;  //能找到子串,計數  
            i=strstr(strstr(i,"lol")," ");   //濾過該單詞,把下次搜索起點移到該單詞后面  
        }  
        printf("%d\n",sum*10);  //輸出計數變量*10即可  
    }  
    return 0;  
}  
</span>  
分享到: 更多
藍客門戶
©2001-2019 中國藍客聯盟 版權所有.
關于藍客聯盟歷史宗旨章程技術服務聯系我們藍客社區

女校剑道部闯关