答えて
def nbr_consecutive(arr, str)
start_ndx = arr.index(str)
return 0 if start_ndx.nil?
a = arr[start_ndx..-1]
a.index { |s| s != str } || a.size
end
arr = %w| e e a a a a b c d a a a |
#=> ["e", "e", "a", "a", "a", "a", "b", "c", "d", "a", "a", "a"]
nbr_consecutive(arr, "e")
#=> 2
nbr_consecutive(arr, "a")
#=> 4
nbr_consecutive(arr, "b")
#=> 1
nbr_consecutive(arr, "z")
#=> 0
あなたの手紙店は母音を使い果たしましたか? :-P –
@Jörg、はい、私は東ヨーロッパに行ったことがありますが、そこには莫大な不足があります。 –
array = ["a","a","a","a","b","c","d","a","a","a"]
array.chunk{|char| char}.map{|char, a| a.size if char == "a"}.first
は、アイデアは、あなたが欲しいの手紙を見つけるまで、最初の文字を削除して、あなたの手紙を数えることである私が
list.drop_while { |letter| letter != letter_to_find }.take_while { |letter| letter == letter_to_find }.count
と考えることができる最もルビーっぽい方法ですあなたの手紙ではない手紙に達するまでしたい。
だからたとえばあなただけtake_while
があなたの具体的な例のために必要ですが、あなたが欲しいの文字の前の文字を持っている場合drop_while
が必要であることはない
["a","a","a","a","b","c","d","a","a","a"].drop_while { |letter| letter != "a" }.take_while { |letter| letter == "a" }.count
を行うだろう。
letters = ["a","a","a","a","b","c","d","a","a","a"]
letters.take_while { |letter| letter == letters.first }.count
=> 4
私はあなたがその質問を誤解しているかもしれないと思います。私の読みはそれです。一致する値が '' b ''ならば、その数は1になります。 –
array = ["a","a","a","a","b","c","d","a","a","a"]
あなただけに関係なく、それが何であるか、最初の値を気にしない場合:
p array.slice_when(&:!=).first.size #=> 4
# same as array.slice_when{|x,y| x != y }.first.size #=> 4
あなたが特定の値を探すために必要がある場合:
p array.slice_when(&:!=).find{|x| x.first == 'b' }.size #=> 1
またはおそらく:
p array.slice_when(&:!=).to_a.assoc('a').size #=> 4
- 1. アレイは、私はこのような配列を持つJSON
- 2. num。アレイ、合計値と同じ値が、私はこの配列を持つ
- 3. 私はこのような同じクラス名を持ついくつかの要素持って、同じ親
- 4. は、私は、これらの要素とRDDを持つ配列
- 5. 私はこのような文字列を持つアレイのJavascript
- 6. 私はこのような配列を持つ配列
- 7. 私はこのような配列を持つ配列
- 8. は、どのように私はこのような配列を持つ配列
- 9. 同じ要素の値を持つ配列を結合し、
- 10. は私に同じ日付を持つ配列内のすべての要素を与える、JS
- 11. 同じ値を持つ配列要素を削除するにはどうすればよいですか?
- 12. 各要素が同じキーを持つDBObjectの配列
- 13. ターゲット、私はこのような構造持つ同じクラス名
- 14. は、私はちょうどこのような配列を持つ配列
- 15. イオン/ AngularJS - 私はこのようなコンテンツを持つ親要素
- 16. Railsの - 私はこのような配列持つ文字列
- 17. 1つの配列の要素は、次のように私はPHPでの二つの配列を持つPHP
- 18. 私はこのようなクラスの持つ要素
- 19. 与えられた配列に2222,11,88888などのような同じ数字を持つ配列要素を出力したい。 {1、121,222,44,451,5510,414}
- 20. が、私はこの中のような配列を持つネイティブ
- 21. Lodash - 私はこのようなオブジェクトの配列を持つオブジェクト
- 22. スウィフトは、私は次の配列を持つ2つのアレイ
- 23. は、私は3つのように同じクラスを持つdiv要素を持っている
- 24. は、私はそうのようなHTMLを持つ要素
- 25. 配列を並べ替える私はこのような配列を持っている特別な要件
- 26. 私はこのような配列持つNSArrayの
- 27. C++私は1つの要素を持つ配列を持っているか配列要素
- 28. PHPは、私のような配列を持つツリー配列
- 29. 配列要素の参照同じ配列の別の要素
- 30. Pentahoは - 私はこのような異なるホスト上の同じストアドプロシージャ持つ
2つのポインタ(前と現行)を維持し、それらの2つのポインタを比較する配列を反復処理します。 –
配列が 'arr = [" b "、" b "、" a "、" a "、" a "、" b "、" a "]'で、 '' a ''の最初の実行が数えれば、答えは「3」になります。正しい?もしそうなら、あなたの配列が '' a "'で始まらなかった方が良いでしょう。混乱してしまいました。ちなみに、例を挙げると、各入力オブジェクト(例えば 'arr = [" a "、" a "....')に変数を代入することで、読者は答えやコメントで変数を参照することができますそれを定義する。 –