Nagie's DevStory

[ALGORITHM] 13. 문자열 뒤집기 본문

ComputerScience/Algorithm

[ALGORITHM] 13. 문자열 뒤집기

Nagie 2023. 11. 22. 15:31
728x90

C++에서 문자열을 뒤집는 방법은 여러 가지가 있다.

그중에서 간단하게 해결할 방법부터 설명하자면 다음과 같이 <algorithm> 헤더에 있는 reverse()를 사용하는 방법이 있다.

 

#include <iostream>
#include <string>
#include <algorithm>

int main() {

    std::string str = "Hello";
    
    // 문자열 뒤집기
    std::reverse(str.begin(), str.end());

    // 뒤집힌 문자열 출력
    std::cout << str << std::endl;
}

 

또한 아래의 코드처럼 반복문을 사용해서 문자열을 뒤집는 방법도 있으며

 

#include <iostream>
#include <string>

int main() {

    std::string str = "Hello";

    int start = 0;
    int end = str.length() - 1;

    while (start < end) {
    
        // 문자열의 시작과 끝을 서로 교환
        std::swap(str[start], str[end]);

        // 시작 인덱스 증가, 끝 인덱스 감소
        start++;
        end--;
    }

    // 뒤집힌 문자열 출력
    std::cout << str << std::endl;
}

 

문자열의 길이가 길면 성능상 문제가 생기긴 하지만 다음과 같이 재귀함수를 사용해 문자열을 뒤집는 방법도 있다.

 

std::string reverse(const std::string& str) {

	return (str.length() == 0) ? "" : reverse(str.substr(1)) + str[0];
}

 

728x90
Comments