次のルール従って、宝石を配置していく。ただし、素直に解こうとすると計算量が爆発するので、メモ化するなどして計算量を抑える工夫が必要。
- 未配置の宝石があるときは、そのなかで最も小さい(aが最小)アルファベット を順に配置していく。
- 未配置の宝石がなくなったら、未配置の宝石の中に、取り除いた後の末尾よりも 大きいアルファベットの宝石が含まれるようになるまで末尾を取り除く。次に、 配置済の宝石の末尾より大きいアルファベットをもつ宝石のうち、もっとも
var util = {}; | |
util.array = {}; | |
util.array.remove = function(arr, obj) { | |
var i = arr.indexOf(obj); | |
var rv; | |
if ((rv = i >= 0)) { | |
util.array.removeAt(arr, i); | |
} | |
return rv; |
6文字(最短)
i%9||9
" NeoBundle ---------------------------------------------------------------- {{{ | |
" call neobundle#begin(___) ... call neobundle#end() の間に置いてください | |
" Vim でコマンドを実行して結果を表示するプラグイン「QuickRun」をインストール | |
NeoBundle 'thinca/vim-quickrun' | |
" テストを実行中、vimの動作をブロックしないようにするために「vimproc」をインストール | |
NeoBundle 'Shougo/vimproc' | |
" rspec の一部のテストだけ実行できるプラグイン「neorspec」をインストール |
" Rubocopのインストールが必要です。 | |
" $ gem install rubocop | |
" $ rbenv rehash | |
" NeoBundle ---------------------------------------------------------------- {{{ | |
" call neobundle#begin(___) ... call neobundle#end() の間に置いてください | |
" Vim でコマンドを実行して結果を表示するプラグイン「QuickRun」をインストール | |
NeoBundle 'thinca/vim-quickrun' |
これの車輪の再発明っぽい: PolicySummary.pod
Perl::Critic の警告 |
内容 |
---|---|
ProhibitBooleanGrep |
Use List::MoreUtils::any instead of grep in boolean context. |
ProhibitComplexMappings |
Map blocks should have a single statement. |
ProhibitLvalueSubstr |
Use 4-argument substr instead of writing substr($foo, 2, 6) = $bar. |