문자열 명령 해석


답안 제출

Points: 7
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

초기 문자열 text와 여러 명령을 받아, 명령을 순서대로 모두 실행한 뒤의 문자열을 반환하는 함수 execute_commands를 작성하시오.

함수 원형은 주어지지 않는다. 설명과 아래의 호출 코드를 보고 함수의 매개변수와 반환값을 직접 설계한다.

명령

각 명령은 다음 다섯 가지 중 하나이다.

명령 동작
APPEND x 현재 문자열의 뒤에 문자열 x를 붙인다.
PREPEND x 현재 문자열의 앞에 문자열 x를 붙인다.
REVERSE 현재 문자열의 문자 순서를 뒤집는다.
REPLACE a b 현재 문자열에 있는 모든 문자 a를 문자 b로 바꾼다.
SLICE l r 현재 문자열을 Python의 text[l:r]과 같은 부분 문자열로 바꾼다. l번째 문자부터 r번째 문자 바로 앞까지 남긴다.

문자열의 첫 번째 문자의 위치는 0이다. SLICE 명령의 lr은 그 명령을 실행하는 시점의 문자열에 대해 항상 유효하다.

명령은 입력된 순서대로 실행한다. 각 명령은 바로 앞 명령까지 실행한 결과에 적용된다.

함수를 사용하는 코드

작성한 함수는 아래 코드와 함께 실행된다.

text = input()
q = int(input())
commands = [input() for _ in range(q)]

result = execute_commands(text, commands)
print(result)
print(type(result))

위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.

입력

첫째 줄에 알파벳과 숫자로 이루어진 초기 문자열 text가 주어진다.

둘째 줄에 명령의 수 \(Q\)가 주어진다.

다음 \(Q\)개 줄에 실행할 명령이 순서대로 주어진다.

  • 초기 문자열의 길이는 \(1\) 이상 \(1,000\) 이하이다.
  • \(0 \le Q \le 1,000\)
  • APPENDPREPENDx는 공백이 없는 문자열이다.
  • REPLACEab는 알파벳 또는 숫자 한 글자이다.
  • 모든 명령을 실행하는 동안 문자열의 길이는 \(100,000\) 이하이다.

출력

모든 명령을 적용한 최종 문자열을 출력한다.

함수는 str을 반환해야 한다. 마지막 줄에는 함수가 반환한 값의 자료형을 출력한다.

예제 입력 1

abcde
5
APPEND xy
PREPEND z
REVERSE
REPLACE x q
SLICE 1 7

예제 출력 1

qedcba
<class 'str'>

예제 설명 1

초기 문자열은 abcde이다.

  • APPEND xy를 실행하면 뒤에 xy가 붙어 abcdexy가 된다.
  • PREPEND z를 실행하면 앞에 z가 붙어 zabcdexy가 된다.
  • REVERSE를 실행하면 문자 순서가 뒤집혀 yxedcbaz가 된다.
  • REPLACE x q를 실행하면 모든 xq로 바뀌어 yqedcbaz가 된다.
  • SLICE 1 7을 실행하면 yqedcbaz[1:7]에 해당하는 qedcba가 된다.

따라서 함수가 반환해야 하는 최종 문자열은 qedcba이고, 반환값의 자료형은 str이다.

예제 입력 2

banana
2
REPLACE a o
SLICE 1 5

예제 출력 2

onon
<class 'str'>

코멘트

현재 작성된 코멘트가 없습니다.