题面:
题目描述
给定一篇只含有大小写字母,空格以及 ′.′(不含引号)的长度为 L 的文章。文章被若干个 ′.′ 划分 成若干个句子,句子被若干个空格划分成单词。你需要将文章中每个句子第一个单词的首字母改成大写, 其他一律小写,空格与 ′.′ 需原样输出。注意,可能存在某个句子中没有单词,或者某两个单词之间有多 个空格。
输入输出格式
输入格式:
一行,表示原串。
输出格式:
一行,表示你的回答。
输入输出样例
输入样例#1:
nigeru. wa.haji.
输出样例#1:
Nigeru. Wa.Haji.
输入样例#2:
.. .nI noip WEn le .NICE broO..
输出样例#2:
.. .Ni noip wen le .Nice broo..
说明
测试点编号 | 限制与约束 |
---|---|
1,2,3,4,5 | L<=103 |
6,7,8,9,10 |
L<=105
|
这道题看一下就有知道很水……
再看一下数据范围,直接暴力枚举就好。时间复杂度是 O(L)
直接给出代码:
#includeusing namespace std; char ch,s[1000010];int len=1;bool flag;int main(){ while(scanf("%c",&ch)!=EOF) { if(!flag) { if(ch>='a'&&ch<='z') { ch-=32; flag=true; } if(ch>='A'&&ch<='Z')flag=true; printf("%c",ch); continue; } if(ch>='A'&&ch<='Z')ch+=32; printf("%c",ch); if(ch=='.')flag=false; } return 0;}