Ad
  • Custom User Avatar
  • Default User Avatar

    I agree with that this solution is not right.

  • Custom User Avatar

    Yeah, my understanding of string.count is that any arguments it's given are basically reduced to a unique set of letters that are in all arguments.

    So whether the search_text is 'c' or 'cc' it will return the same number.

    This works for the third test because all 'c's are part of the substring 'cc', but as shown by lzw120's example, if you search 'bb' but have isolated 'b's as in 'baa_bb_cc_bdd_bb_eb' this solution will give you all instances of 'b' and then divide by 2, the length of 'bb'.

    Would suggest adding a test to account for this, like:

    Test.expect(solution('ccddeeccddeecc', 'cd') == 2 #This solution would return 5, the total number of c's and d's (10) divided by the length of 'cd' (2).
    
  • Custom User Avatar

    I don't think this is right, count will count the char set other than the whole text, e.g. solution('baa_bb_cc_bdd_bb_eb', 'bb') should return 2, in your case, it returns 3.

  • Default User Avatar

    super in this case (without parens) is a special form. It calls the superclass method with the original params

  • Default User Avatar

    You might want to pass on the parameters up the hierarchy:

    class Hash
      def method_missing(m, *args)
        self[m] || self[m.to_s] || super(m, args)
      end
    end