Algorithm

[TopCoder 전체탐색] 회문(Palindrome)

승우승 2018. 12. 20. 13:43
반응형

어떤 문자가 추가되어야 하는지가 아닌 단순 몇글자가 추가되어야 하는지를 반환하기 때문에 난이도는 낮다. 혹시라도 어려움을 느낀다면 배열을 그리고 직접 손으로 따라가보면서 하는 것도 좋은 방법이다.


#include <iostream>

#include <string>

#include <algorithm>


using namespace std;

/*

* 회문 알고리즘

* 임의의 문자열s로 회문을 만든다.

* 문자열 s뒤에 0개 이상의 숫자를 추가해 회문을 생성하려고 한다.

* 가장 짧은 회문의 길이를 return

*/

int find(string s)

{

cout<<s.size()<<endl;

for(int i=s.size(); ; i++)

{

bool breakFlag=true;

for(int j=0; j<s.size(); j++)

{

if((i-j-1) < s.size() && s[j] != s[i-j-1])

{

breakFlag=false;

break;

}

}

if(breakFlag)

return i;

}

}


int main(void)

{

cout<<find("abab")<<endl;

return 0;


반응형