Aracade Intro #45 buildPalindrome. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
Q.
주어진 문자열에서, 가장 적은수의 문자를 추가해서 회문 문자가 가능하게 되는 문자열를 찾아라. ( 회문 - 수박이박수 처럼 앞뒤로 읽어도 같은 것 )
e.g.
Input -> st = "abcdc"
Output -> buildPalindrome(st) = "abcdcba"
"ba" 가 추가된 글자가 최소 길이 회문문자
"ba" added string is shortest palindrome string
//Process
//1. Input
//2. Check if it's palindrome string
// 2.1. If not -> Iterate from begin to the end
// 2.1.1. Add to the end the index char in turn
// 2.1.2. Check if it's palindrome
//3. Return palindrome string result
//처리과정
//1. 스트링을 입력받는다.
//2. 회문문자인지 확인해서
// 2.1. 아니면 -> 시작부터 끝까지 반복한다.
// 2.1.1. 해당 순서 char를 차례로 끝부분에 더해준다
// 2.1.2. 회문문자인지 확인한다.
//3. 만들어진 회문문자를 반환한다.
Code.. Lemme see code!!!!!
코드.. 코드를 보자!!!!!
std::string buildPalindrome(std::string st) {
string resultString = st;
bool answer = isPalindrome(st);
if (!answer)
{
for (int i = 0; i < st.size() && !answer; ++i)
{
string s(1, st[i]);
resultString.insert(resultString.size() - i, s);
if (isPalindrome(resultString))
{
answer = true;
}
}
}
return resultString;
}
bool isPalindrome(std::string st) {
int i = 0;
int j = st.length() - 1;
bool isSame = true;
while (i <= j && isSame)
{
if (st[i++] != st[j--])
{
isSame = false;
}
}
return isSame;
}
Something else you might like..
2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)
2018/12/06 - [Life/Health care] - Vitamin C 비타민 씨 usage/side effects/dosage 용법/효능/부작용
2018/12/02 - [Life/Health care] - Maca 마카 usage/side effects/dosage 효능/부작용/용법