zoukankan      html  css  js  c++  java
  • Kindergarten Counting Game

    欢迎访问我的新博客:http://www.milkcu.com/blog/

    原文地址:http://www.milkcu.com/blog/archives/uva494.html

    题目描述

     Kindergarten Counting Game 

    Everybody sit down in a circle. Ok. Listen to me carefully.

    ``Woooooo, you scwewy wabbit!''

    Now, could someone tell me how many words I just said?

    Input and Output

    Input to your program will consist of a series of lines, each line containing multiple words (at least one). A ``word'' is defined as a consecutive sequence of letters (upper and/or lower case).

    Your program should output a word count for each line of input. Each word count should be printed on a separate line.

    Sample Input

    Meep Meep!
    I tot I taw a putty tat.
    I did! I did! I did taw a putty tat.
    Shsssssssssh ... I am hunting wabbits. Heh Heh Heh Heh ...

    Sample Output

    2
    7
    10
    9

    解题思路

    这个题目要统计每行中的单词数目。
    注意对输入的处理。
    使用了一个状态标志state:
    state为1表示上一字符在单词内;
    state为0表示上一字符不在单词内。

    代码实现

    #include <stdio.h>
    int isl(char c) {
    	if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
    		return 1;
    	} else {
    		return 0;
    	}
    }
    int main(void) {
    	char s[100000];
    	int rear = 0;
    	int c;
    	while((c = getchar()) != EOF) {
    		s[rear++] = c;
    	}
    	s[rear] = '';
    	int i = 0;
    	int num = 0;
    	int state = 0;
    	while(s[i] != '') {
    		if(s[i] == '
    ') {
    			printf("%d
    ", num);
    			num = 0;
    			state = 0;
    		} else {
    			if(isl(s[i])) {
    				if(state == 0) {
    					num++;
    				}
    				state = 1;
    			} else {
    				state = 0;
    			}
    		}
    		i++;
    	}
    	return 0;
    }

    (全文完)

  • 相关阅读:
    usaco-ariprog1-pass
    usaco-crypt1-pass
    usaco-barn-repair-pass-KISS
    usaco-mixing milk-pass
    面试HR
    LCS求最长公共子序列(DP)
    毕业随想(转载)
    0-1背包问题(DP)
    排序算法
    二叉搜索树的实现 java
  • 原文地址:https://www.cnblogs.com/milkcu/p/3808853.html
Copyright © 2011-2022 走看看