본문 바로가기
Algorithm

[Algorithm][Array] 문제 풀이 #14 - Find All Anagrams in a String

by Lee David 2022. 7. 27.
반응형
문제 링크

https://leetcode.com/problems/find-all-anagrams-in-a-string/

내 코드
public List<Integer> findAnagrams(String s, String p) {
    List<Integer> list = new ArrayList<>();

    if (s.length() < p.length()) {
        return list;
    }

    int[] sChar = new int[26];
    int[] pChar = new int[26];

    for (int i = 0; i < p.length(); i++) {
        pChar[p.charAt(i) - 'a'] += 1;
    }

    int si = 0;

    for (int i = 0; i < s.length(); i++) {
        sChar[s.charAt(i) - 'a'] += 1;

        if (i - si + 1 != p.length()) continue;

        if (Arrays.equals(sChar, pChar)) {
            list.add(si);
        }
        sChar[s.charAt(si) - 'a'] -= 1;
        si++;
    }
    return list;
}
결과

문제 풀이 방법을 조금 바꿔보고 있다.

모르는 문제는 일단 풀어보지만 30분 이후에도 틀린다면 바로 답을 보고

복붙하는것이 아니라 내가 효율적이라고 생각하는대로 조금씩 바꾸는중!!!

언젠간 잘 하겠지....ㅠㅠㅠ

반응형