coding for food

[Ruby] exercises _ Is Valid Name

silveryen 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