teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正バージョン

2016/03/19 12:41

投稿

raccy
raccy

スコア21768

answer CHANGED
@@ -1,7 +1,11 @@
1
1
  うーん、動作要件がいまいちわかりませんが、こんなのでしょうか?
2
2
  ```Ruby
3
3
  def mj_arano2(i)
4
- "00#{i}00".gsub(/00100/, '00000').sub(/0*$/, '').to_i
4
+ "00#{i}00".gsub(/001(?=00)/, '000').reverse.sub(/\A0+/, '').reverse.to_i
5
5
  end
6
6
  ```
7
- 一応同じように動きます。
7
+ たぶんこれでいけると思います。
8
+ 【修正箇所】
9
+ 先読みにすることで、孤立した1が出ないようにしました。
10
+ subをreverseすることで、たぶん、遅くなる問題は解決したと思います。(正規表現は後方から探すと遅いけど、前方から探すは早い)
11
+