TopCoder - SRM 424 DIV 2: 250

今回も英語に苦しみました・・・。英語勉強しないとですね。今回の問題は英大文字の文字列の中から、'A'と'Z'を抜き出し、その文字列の中で順番を反転するというもの。コードはソースコードビューアに保存しました。いつも思うけどおれのコードは長い。

public class MagicSpell {
  public String fixTheSpell(String spell) {
    char[] c = spell.toCharArray();
    int r = c.length;
    for (int i=0;i<c.length;i++) {
      if (c[i]=='A'||c[i]=='Z'){
        System.out.println("i:"+c[i]);
        for (int j=r;j>0;j--) {
          if (c[j-1]=='A'||c[j-1]=='Z'){
            System.out.println("j:"+c[j-1]);
            char temp = c[j-1];
            c[j-1]=c[i];
            c[i]=temp;
            r=j-1;
            break;
          }
        }
      }
      if (i>=r-1) {
        break;
      }
    }
    return new String(c);
  }
}

コメント

このブログの人気の投稿

Python から Win32 API 経由で印刷する

Disqus のスケール - Django 編

Disqus のスケール - Django で月間80億PVを処理する