Leetcode Java Find and Replace Pattern
업데이트:
문제
코드
class Solution {
public List<String> findAndReplacePattern(String[] words, String pattern) {
List<String> result = new ArrayList<>();
for (String word : words) {
if (this.match(word, pattern)) {
result.add(word);
}
}
return result;
}
private boolean match(String word, String pattern) {
for (int i = 0; i < word.length(); i++) {
if (word.indexOf(word.charAt(i)) != pattern.indexOf(pattern.charAt(i))) {
return false;
}
}
return true;
}
}
결과
설명
-
words 내 단어들 중 pattern의 문자 패턴과 일치하는 문자를 찾는 문제이다.
-
result는 패턴과 일치하는 문자를 넣을 변수로, ArrayList로 초기화한다.
-
words를 반복하여 4번에서 정의한 match(String word, String pattern)를 만족하는지 검증하여 result에 넣어준다.
- 문자열 검증을 위한 match(String word, String pattern) 메서드를 정의한다.
- 0부터 word의 길이 미만까지 i를 증가시키며 문자 별 위치가 동일한지 검증하여, 만족하지 않는 경우 false를 반환한다.
- 반복이 완료되어 패턴과 일치하면 true를 반환한다.
- 반복이 완료되어 패턴과 일치하는 문자열만 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기