본문 바로가기

Dev Language/LeetCode

[LeetCode] 5. Longest Palindromic Substring

반응형

오늘은 오전에 시간이 많아서 많이 풀고 있네요..


5번째 문제인 Longest Palindromic Substring


난이도는 중입니다.


저는 아래와 같이 풀었습니다.


class Solution {

public:

    string longestPalindrome(string s) {

        if (s.empty()) return "";

        if (s.size() == 1) return s;

        

        const char *buf = s.c_str();

        int nBufSize = s.size(), size, pos = 0;

        

        for ( size = nBufSize; size >= 1; size -- ) {            

            for ( pos = 0; pos < nBufSize - size + 1; pos ++ ) {                

                if ( checkPalindromic(buf + pos, size) ) {

                    return string(buf + pos, size);

                }    

            }            

        }

                

        return "";

    }

    

    bool checkPalindromic(const char *buf, int nBufSize) {

        int nLeftPos = 0;

        int nRightPos = nBufSize - 1;

        bool bFind = true;

        

        while ( nLeftPos < nRightPos ) {

            

            if ( buf[nLeftPos] != buf[nRightPos] ) {

                bFind = false;

                break;

            }

            

            nLeftPos ++;

            nRightPos --;

        }

        

        return bFind;

    }

};


그런데 속도는 18.61%...


모가 문제일까요... ㅠㅠ



반응형