2011年12月15日木曜日

TopCoder SRM279 Div2 300Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について、おおまかに説明する。

文章は踊っているとは、最初の文字が大文字で、続く文字が直前の反対の文字になっていることを言う。スペースは文字の種類(大文字、小文字)を決めるときには無視される。例えば、"Ab Cd"は踊っているという。sentenceという文字列が与えられたとき、この文字列を必要があれば(大文字と小文字を)変えて踊っているようにせよ。すべての空白について保存されるようにせよ。

私の解答はこちら。

public class DancingSentence {

 public String makeDancing(String sentence) {
  boolean nextUpper = true;
  StringBuffer sb  = new StringBuffer();
  for( int i=0 ; i<sentence.length() ; i++ ){
   char c = sentence.charAt(i);
   if( c == ' ' ){
    sb.append(" ");
    continue;
   }
   if( nextUpper == true ){
    sb.append(Character.toUpperCase(c));
    nextUpper = false;
   }else{
    sb.append(Character.toLowerCase(c));
    nextUpper = true;
   }
  }
  return sb.toString();
 }

}

得点は282.36/300、中央値は約272点。1文字ずつ逐次チェックすればOK、簡単な部類の問題と思います。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計