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