UVA 494 Kindergarten Counting Game
2016-03-22 12:02
561 查看
#include <iostream> #include <cstdio> #include <cstring> using namespace std; // 错误思路一:用gets,空间不确定 //int main () //{ // char s[100000]; // while (gets(s)) // { // int n = strlen(s); // int k = 0; // int index_i = 0; // for (int i=0; i<n; i++) // { // if (s[i] == ' ' || i == n-1) // { // if (s[index_i] >= 'A' && s[index_i] <= 'Z' || // s[index_i] >= 'a' && s[index_i] <= 'z') // { // k++; // } // index_i = i+1; // } // } // cout << k << endl; // } // return 0; //} //错误思路二:遇到字母且flag标志为false时标记flag为true, //然后遇到空格或回车且flag为true时算作一个单词,再将flag置为false //错误原因分析:[由特殊情形导致]:对于and/or 这个正确答案算作是2个单词,而此程序算作1个单词, //由此把else if (c == ' ')里的内容写到下面的else 里可以AC //int main () //{ // char c; // bool flag = false; // int k = 0; // while ((c = getchar()) != EOF) // { // if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') // { // if (!flag) flag = true; // } // else if (c == ' ') // { // if (flag) // { // k++; // flag = false; // } // } // else if (c == '\n') // { // if (flag) // { // k++; // } // flag = false; // cout << k << endl; // k = 0; // } // else // { // ; // } // } // return 0; //} // 正确思路:遇到第一个字母,且flag为false时算为一个单词(即只要首字符是字母的都算一个单词),其他情况都置false int main () { char c; bool flag = false; int k = 0; while ((c = getchar()) != EOF) { if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') { if (!flag) { flag = true; k++; } } else if (c == '\n') { flag = false; cout << k << endl; k = 0; } else { flag = false; } } return 0; }
相关文章推荐
- 关于自定义tabbar修改字体颜色及图标选中颜色等方法的总结
- 图解Fiddler如何抓手机APP数据包
- matplotlib使用
- Django--form保存用户输入内容
- lintcode-medium-Gray Code
- 新手做LeetCode 2 Add Two Numbers
- keepalived入门之lvs高可用部署 (应用篇)
- Git权威指南第一章 版本控制的前世今生(一)
- 兼容性记录-class属性
- 2016-03-22 OneZero团队 Daily Scrum Meeting
- 【图解ASP.NET MVC运行机制理解-简易版】
- 文本视图 UITextView
- 让服务程序进入demon模式的代码
- 什么是swing/SWT与/JFace/RCP/插件开发
- Create groups和Create folder references的区别
- MySQL复制之GTID跳过与FEDERATED存储引擎(接上篇)
- Spring MVC的HTTP请求信息转换器HttpMessageConverter
- Node.js小Httpserver
- jta+spring4+hibernate5/jpa2
- 单元测试