fork download
  1.  
  2. F=
  3. ->s,m{s.chars.chunk{|x|x}.reduce(0){|x,(c,g)|l=g.size
  4. x+(c!=m ?0:l<2||l%15<1?1:l%3*l%5<1?-1:0)}}
  5.  
  6. require 'minitest/autorun'
  7.  
  8. describe F do
  9. def test_cases
  10. assert_equal 1, F['a', 'a']
  11. assert_equal -1, F['aaa', 'a']
  12. assert_equal -1, F['aaaaa', 'a']
  13. assert_equal 1, F['aaaaaaaaaaaaaaa', 'a']
  14. assert_equal 0, F['aa', 'a']
  15.  
  16. assert_equal 2, F['aba', 'a']
  17. assert_equal 1, F['aaba', 'a']
  18. assert_equal 0, F['aaaba', 'a']
  19. assert_equal -1, F['aaaaaa', 'a']
  20. end
  21. end
Success #stdin #stdout 0.09s 10744KB
stdin
Standard input is empty
stdout
Run options: --seed 64271

# Running tests:

.

Finished tests in 0.007351s, 136.0309 tests/s, 1224.2784 assertions/s.

1 tests, 9 assertions, 0 failures, 0 errors, 0 skips