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;
  }



};