fork download
  1. def choose(m)
  2. self.factorial / (m.factorial * (self - m).factorial)
  3. end
  4. def fact (n)
  5. if n < 2
  6. return 1
  7. end
  8. (2..n).inject(1) { |f, n| f * n }
  9. end
  10.  
  11. t = gets.to_i
  12. while t > 0
  13.  
  14. s = gets.chomp
  15. n = s.length
  16. m = n
  17. count = []
  18. i = 0
  19. while i < n
  20. count << s.count(s[i])
  21. n = n - s.count(s[i])
  22. s = s.gsub(s[i],"")
  23. i = i + 1
  24. end
  25. n = count.length
  26. deno = 1
  27. (0..n-1).each{ |i|
  28. deno = deno * fact(count[i])
  29.  
  30. }
  31. print "#{fact(m)/deno}\n"
  32. t= t - 1
  33. end
Success #stdin #stdout 0s 4760KB
stdin
4
ab
aa
aA
AAbaz
stdout
2
1
2
60