본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 "가장 긴 펠린드롬"

by 시아나 2022. 6. 2.

https://programmers.co.kr/learn/courses/30/lessons/12904

 

코딩테스트 연습 - 가장 긴 팰린드롬

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들

programmers.co.kr


#include <iostream>
#include <string>
using namespace std;

bool isPal(string& str,int front,int n) {
    int end = front + n - 1;
    for (int j = 0; j < n/2; j++) {
        if (str[j+front] != str[end - j]) {
            return false;
        }
    }
    return true;
}

int solution(string s)
{
    for (int i = s.size(); i > 1; i--) {
        for (int k = 0; k <= s.size() - i; k++) {
            if (isPal(s,k,i)) return i;
        }
    }
    return 1;
}