ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ruby] exercises _ Is Valid Name
    coding for food 2022. 7. 31. 01:41
    # A name is valid is if satisfies all of the following:
    # - contains at least a first name and last name, separated by spaces
    # - each part of the name should be capitalized
    #
    # Hint: use str.upcase or str.downcase
    # "a".upcase # => "A"
    
    def is_valid_name(str)
    
    end
    
    puts is_valid_name("Kush Patel")       # => true
    puts is_valid_name("Daniel")           # => false
    puts is_valid_name("Robert Downey Jr") # => true
    puts is_valid_name("ROBERT DOWNEY JR") # => false

    my code

    def is_valid_name(str)
      names = str.split(" ")
      if names.length < 2
        return false
      end
      
      names.each do |name|
        
      if (name[0].upcase == name[0]) && (name[1..-1].downcase == name[1..-1])
        return true
      else
        return false
      end
      end
    end
    
    puts is_valid_name("Kush Patel")       # => true
    puts is_valid_name("Daniel")           # => false
    puts is_valid_name("Robert Downey Jr") # => true
    puts is_valid_name("ROBERT DOWNEY JR") # => false

    solution

    def is_valid_name(str)
      parts = str.split(" ")
      if parts.length < 2
        return false
      end
    
      parts.each do |part|
        if !is_capitalized(part) # 모든 기준을 통과한 part들만 true 로 return 되게끔 모든 false 를 지나 마지막 return 값을 얻을 수 있도록 구성한다. 
          return false
        end
      end
    
      return true
    end
    
    def is_capitalized(word)
      if word[0] == word[0].upcase && word[1..-1] == word[1..-1].downcase
        return true
      else
        return false
      end
    end
    
    puts is_valid_name("Kush Patel")       # => true
    puts is_valid_name("Daniel")           # => false
    puts is_valid_name("Robert Downey Jr") # => true
    puts is_valid_name("ROBERT DOWNEY JR") # => false
Designed by Tistory.