SRM 505 Easy SentenceCapitalizerInator
問題
http://www.topcoder.com/stat?c=problem_statement&pm=11399&rd=14434 (要ログイン)
- 全部小文字で書かれた英語の文章があるので、文の先頭を大文字に変えろ。
方針
- 問題の条件をよく読むと、「文の先頭 = 文章の先頭 or "."の2文字後」、なので、文の先頭と"."の2文字後を大文字に変える。
回答
#include <sstream> #include <string> #include <vector> #include <map> #include <algorithm> #include <iostream> #include <utility> #include <set> #include <cctype> #include <queue> #include <stack> #include <cstdio> #include <cstdlib> #include <cmath> #include <iterator> #include <cctype> using namespace std; class SentenceCapitalizerInator{ public: string fixCaps(string paragraph){ size_t n = paragraph.size(); paragraph[0] = toupper(paragraph[0]); for(size_t i = 1; i < n - 2; i++){ if(paragraph[i] == '.'){ paragraph[i + 2] = toupper(paragraph[i + 2]); } } return paragraph; } };