def valid(tly,word)
n=word.size
(1...n).each do|i|
pre=word[...i]
suf=word[i...]
return true if tly.include?(pre)&&(tly.include?(suf)||valid(tly,suf))
end
false
end
# @param {String[]} words
# @return {String[]}
def find_all_concatenated_words_in_a_dict(words)
tly=words.tally
ans=[]
words.each do|w|
vs=valid(tly,w)
ans<<w if vs
end
ans
end
Hard가 데일리 문제로 나오는 경우도 있군요... 팁 하나 드리자면 concatenated words가 적어도 2개 이상의 더 짧은 단어로 구성된 단어라고 되어 있지만 이 "더 짧은 단어" 중에 서로 다른 게 2개 이상일 필요는 없습니다. 예시로 입력이 ["cat","catcat","catcatcat"]이면 답으로 ["catcat","catcatcat"]을 출력해야 합니다.
댓글 0