99클럽 코테 스터디 37일차 - 그리디

김동하·2024년 8월 28일
0

알고리즘

목록 보기
87/90

문제

Longest Palindrome

풀이

  • 가장 긴 회문을 찾으면 된다
  • 문자열을 정렬하고 hashSet으로 같은 짝을 찾음. 홀수의 경우 +1

코드

class Solution {
    public int longestPalindrome(String s) {
        HashSet<Character> hashSet = new HashSet<>();
        int answer= 0;
        
        for(int i = 0; i < s.length(); i++){
            if(hashSet.contains(s.charAt(i))){
                hashSet.remove(s.charAt(i));
                answer += 2;
            } else {
                hashSet.add(s.charAt(i));   
            }
        }
        if(!hashSet.isEmpty()) return answer + 1;
        return answer;
    }
}

정리

  • 순회하면서 회문이 가능한 문자열 중 가장 긴 문자열인 줄 알고 투포인터로 했다가 문제 다시 읽고 정렬 가능하다는 걸 알게됨
profile
프론트엔드 개발

0개의 댓글