상세 컨텐츠

본문 제목

409. Longest Palindrome

Developer/LEETCODE

by cepiloth 2021. 9. 5. 22:22

본문

728x90
반응형

https://leetcode.com/problems/longest-palindrome/

 

Longest Palindrome - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

문제

가장 긴 펠린드롬 문자를 만들어라.

 

이문제는 문자열에서 가장 긴 펠린드롬을 찾는 문제가 아니라 주어진 문자열을 조합하여 가장 긴 펠린드롬을 찾는 문제이다. 첫 번째로 생각할 수 있는 게 문자열이 길이가 짝수라면 펠린드롬이 길이는 최대 2*N의 길이를 가질 것이다. 

두 번째로 생각 되는 건 만약 주어진 문자열이 길이가 홀수라면 최대 2*N + 1에 길이를 갖는 펠린드롬을 만들 수 있다. 이 두 가지를 생각하고 코드를 작성하였다.

 

코드

문자열을 모두 map에 삽입하고 value를 증가한다.

반복문으로 map을 순회하면서 value 값이 홀수 여부를 확인한다.

class Solution {
public:
    int longestPalindrome(string s) {

        map<char, int> m;
        
        for(auto c:s) {
            m[c]++;
        }
        
        int hasOdd = 0;
        int sol = 0;
        for(auto a:m) {
            sol += a.second / 2;
            if(a.second & 1) {
                hasOdd = true;
            }
        }
        
        sol = sol * 2 + hasOdd;
        return sol;
    }
};
728x90
반응형

'Developer > LEETCODE' 카테고리의 다른 글

682. Baseball Game  (0) 2021.09.08
575. Distribute Candies  (0) 2021.09.08
819. Most Common Word  (0) 2021.09.05
1996. The Number of Weak Characters in the Game  (0) 2021.09.05
1995. Count Special Quadruplets  (0) 2021.09.05

관련글 더보기

댓글 영역