この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 件のコメント:
コメントを投稿