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; } |
반응형