icpc:problems:luogup1308
problems | |
---|---|
名称 | 统计单词数 |
题目编号 | 2011 NOIP PJ T2 |
题目链接 | luogu.com.cn/… |
来源 | CCF |
算法分类 | 入门_字符串 |
难易程度 | 容易 |
统计单词数
想法
fgets可能存在吞空格的行为,scanf也有可能存在吞空格的行为。需要统计输入行的方法。
代码实现
#include<cstdio> #include<iostream> #include<cstring> using namespace std; const int N = 1e6+10; char str[15]; char line[N]; int main() { cin.getline(str, sizeof(str)); cin.getline(line, sizeof(line)); int cnt = 0, sit = -1, slen = strlen(str), len = strlen(line); for(int i=0; i<slen; i++) if(str[i] >= 'A' && str[i] <= 'Z') str[i] = str[i] - 'A' + 'a'; for(int i=0; i<len; i++) if(line[i] >= 'A' && line[i] <= 'Z') line[i] = line[i] - 'A' + 'a'; for(int i=0; i<len; i++) { if((i == 0 || line[i-1] == ' ') && line[i] == str[0]) { bool flag = true; for(int j=0; j<slen; j++) if(line[i+j] != str[j]){ flag = false; break; } if(!flag)continue; if(flag && !(line[i+slen] >= 'a' && line[i+slen] <= 'z')){ cnt++; if(sit == -1) sit = i; } } } if(cnt == 0) printf("-1"); else printf("%d %d", cnt, sit); return 0; }
/app/www/public/data/pages/icpc/problems/luogup1308.txt · 最后更改: 2024/03/13 16:19 由 温婕莺