5. Longest Palindromic Substring

LJM·2023년 1월 3일
0

LeetCode

목록 보기
10/10

https://leetcode.com/problems/longest-palindromic-substring/

C++

class Solution {
public:
    string longestPalindrome(string s) {
        
        string ret;
        
        int start =0;
        int length = 0;
        
        int left = 0;
        int right = 0;
        
        for(int i = 0; i < s.length(); ++i)
        {
           
            if(i-2>=0 && s[i] == s[i-2])
            {
                left = i-2;
                right = i;
                
                while(left >= 0 && right < s.length())
                {
                    if(s[left] != s[right])
                    { 
                        break;
                    }                        
                        
                    left--;
                    right++;
                }
                   
                left++;
                right--;
                
                if(length < right-left)
                {
                    start = left;
                    length = right - left;
                }

            }
            
            if(i-1>=0 && s[i] == s[i-1])
            {
                left = i-1;
                right = i;
                
                while(left >= 0 && right < s.length())
                {
                    if(s[left] != s[right])
                    { 
                        break;
                    }                        
                        
                    left--;
                    right++;
                }
                   
                left++;
                right--;
                
                if(length < right-left)
                {
                    start = left;
                    length = right - left;
                }
            }
            else
                continue;
            
            
  
        }

        ret = s.substr(start, length+1);
     
        return ret;
    }
};
profile
게임개발자 백엔드개발자

0개의 댓글