2022년 06월 16일 목요일 - 오늘이 100번째 포스팅!!!!


오늘 올려볼 문제는 5번 Longest Palindromic Substring 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

100번째까지 오는데까지 약 반년.... 생각보다는 오래걸렸넹


입력


사진에서도 볼 수 있듯이 String 1개 입력으로 들어온다.



풀이 및 코드


substirng 중에서 palindromic 하면서 가장 긴 substirng을 찾아서 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

for문으로 알파벳 하나씩 순회하면서 나아간다.

이 원소를 기준으로 양쪽으로 펼쳐나가며 palindromic한 substirng을 찾는다.

이 substirng중에서 가장 긴 것을 찾는다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public String longestPalindrome(String s) {
        String result = "";
        
        if(s.length() == 1) return s;
        
        if(s.length() == 2) return s.charAt(0) == s.charAt(1) ? s : s.substring(0, 1);
        
        for(int i = 0; i < s.length(); i++)
        {
            int left = i, right = i;
            
            while( 0 <= left && right < s.length() && s.charAt(left) == s.charAt(right))
            {
                left--;
                right++;
            }
            
            if(result.length() < right - left - 1)
            {
                result = s.substring(left + 1, right);
            }
            
            left = i; 
            right = i + 1;
            
            while( 0 <= left && right < s.length() && s.charAt(left) == s.charAt(right)) 
            {
                left--;
                right++;
            }
            
            if(right - left == 1) continue;
            
            if(result.length() < right - left - 1)
            {
                result = s.substring(left + 1, right);
            }
        }
        
        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘이 leetcode 문제 풀이를 올리는 100번째 포스팅이다!

그동안 열심히 꾸준히 한 내가 자랑스러움을 느끼며...

내일도 문제를 재밌게 풀 수 있었으면 좋겠다!


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts