このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題についておおまかに説明する。
CSSのプロパティ名はすべて小文字で単語の区切りが"-"となっているのが典型的である。しかしながら、JavaScriptを用いてCSSプロパティを設定しようとするなら、キャメルノーテーションを使う必要がある。キャメルノーテーションでは、最初の単語を除いて単語の先頭は大文字となり、隣の単語との区切り文字はない。cssPropertyNameという"-"で単語が区切られた表記が与えられたとき、それをキャメルノーテーションに書き換えたものを返せ。
私の解答はこちら。
public class CssPropertyConverter { public String getCamelized(String cssPropertyName) { String[] sp = cssPropertyName.split("-"); StringBuffer ret = new StringBuffer(); for( int i=0 ; i<sp.length ; i++ ){ char[] tmp = sp[i].toCharArray(); if( i > 0 ){ // 先頭の文字を差替 tmp[0] = Character.toUpperCase(tmp[0]); } ret.append(tmp); } return ret.toString(); } }
得点は244.96/250、中央値は約222点。charの配列に変換して先頭だけ差し替えるという手法で解けたので、コーディングが簡単にできました。
0 件のコメント:
コメントを投稿