Leetcode Java Find Resultant Array After Removing Anagrams
업데이트:
문제
코드
class Solution {
public List<String> removeAnagrams(String[] words) {
String prev = "";
List<String> result = new ArrayList<>();
for (String word : words) {
char[] charArray = word.toCharArray();
Arrays.sort(charArray);
String curr = String.valueOf(charArray);
if (!curr.equals(prev)) {
result.add(word);
prev = curr;
}
}
return result;
}
}
결과
설명
- 주어진 문자열 배열인 words에서 아래 조건을 만족하지 않을 때 까지 반복 후 남은 문자열을 반환하는 문제이다.
- 인접한 두 문자열이 아나그램을 만족하는 경우, 뒷 문자열을 삭제한다.
- 문제 풀이에 필요한 변수를 정의한다.
- prev는 이전에 발생한 문자열을 저장할 변수이다.
- result는 결과를 저장할 변수로, ArrayList로 초기화한다.
- words의 각 문자를 word에 넣어 아래를 수행한다.
- word를 오름차순으로 문자들을 정렬하고 prev와 동일하지 않은 아나그램을 만족하지 않는 경우, result에 word를 넣고 prev에 curr을 저장한다.
- 반복이 완료되면 결과가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기