본문 바로가기

Algorithm/Code Fights (Code Signal)

Aracade Intro #45 buildPalindrome. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

Aracade Intro #45 buildPalindrome. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar



Q.


Given a string, find the shortest possible string which can be achieved by adding characters to the end of initial string to make it a palindrome.

 주어진 문자열에서, 가장 적은수의 문자를 추가해서 회문 문자가 가능하게 되는 문자열를 찾아라. ( 회문 - 수박이박수 처럼 앞뒤로 읽어도 같은 것 )



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/20 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #44 findEmailDomain. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/17 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #43 isBeautifulString. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/16 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #42 bishopAndPawn. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/14 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #41 digitDegree. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #40 longestDigitsPrefix. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #39 knapsackLight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar



2018/12/20 - [Programming/Java] - How to convert file to byte array (byte[]) example, 파일 객체 바이트로 변환하기 예제코드, java/cpp/c++/scalar


2018/12/18 - [Programming/Java] - How to access controller from existing Pane in JavaFX, pane에서 해당 controller로 접근하기, java/cpp/c++/fx/gui


2018/12/13 - [Computer/Linux] - How to check ongoing live process on Linux cmd, 리눅스 커맨드창에서 어떤 프로세스가 실행중인지 확인하기, java, ubuntu, cpp



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 효능/부작용/용법