한 가지 방법 :
def check_only_last_upcase(arr)
return false if arr.empty?
arr.each_with_index do |word, index|
return false if word == word.upcase && index != (arr.length-1)
end
(arr.last.upcase == arr.last)
end
puts check_only_last_upcase(["word", "wOrD", "WORD"]) #true
puts check_only_last_upcase(["WORD", "wOrD", "WORD"]) #false
puts check_only_last_upcase(["word", "wOrD", "word"]) #false
puts check_only_last_upcase(["word"]) #false
puts check_only_last_upcase(["WORD"]) #true
puts check_only_last_upcase([]) #false
또 다른 방법 (더 루비 방법처럼 보인다?) :
def check_only_last_upcase(arr)
arr.last == arr.last.upcase &&
arr
.slice(0,arr.length-1)
.all? { |word| word.upcase != word }
end
마지막 제안 arr
항상 arr
경우 반환하지 않는 하나 개 이상의 항목을 (가지고 가정 비어 있음).
"[ask]"및 "[mcve]"를 읽으십시오. 우리가 그것을 바로 잡을 수 있도록 당신의 시도를보고 싶습니다. 요구 사항 목록 만 제공했기 때문에 코드를 작성해야하는 것처럼 보입니다. –
"대문자"는 단어의 첫 번째 문자 만 나타내므로 "대문자 만 포함"과 같은 단어로 "대문자"를 대체 할 수 있습니다. –