Leetcode Java Short Encoding of Words
업데이트:
문제
코드
class Solution {
public int minimumLengthEncoding(String[] words) {
Set<String> set = new HashSet<>(Arrays.asList(words));
for (String word : words) {
for (int idx = 1; idx < word.length(); idx++) {
set.remove(word.substring(idx));
}
}
int result = 0;
for (String word : set) {
result += word.length() + 1;
}
return result;
}
}
결과
설명
- words 내 문자열들로 아래의 규칙을 만족하는 인코딩의 최소 길이를 구하는 문제이다.
- 인코딩은 참조 문자열을 이용하여 각 문자열 뒤에 ‘#’ 문자열을 붙여 만드는 문자열 형식이다.
- 참조 문자열이란 words 내 특정 단어가 해당 문자열을 제외한 다른 문자열에 포함되지 않는 문자열이다.
-
set에 words의 중복된 단어를 제거하기 위해 HashSet으로 words의 문자열을 넣어준다.
-
words를 반복하여 각 문자열이 words 내 문자열들 중 하나라도 포함되는지 검증하여 set에서 제거해준다.
- result에 set 내 각 문자열의 길이와 ‘#’ 문자열의 길이인 1을 더한 값을 누계하여 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기