문자열 명령 해석
초기 문자열 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 명령의 l과 r은 그 명령을 실행하는 시점의 문자열에 대해 항상 유효하다.
명령은 입력된 순서대로 실행한다. 각 명령은 바로 앞 명령까지 실행한 결과에 적용된다.
함수를 사용하는 코드
작성한 함수는 아래 코드와 함께 실행된다.
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\)
APPEND와PREPEND의x는 공백이 없는 문자열이다.REPLACE의a와b는 알파벳 또는 숫자 한 글자이다.- 모든 명령을 실행하는 동안 문자열의 길이는 \(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를 실행하면 모든x가q로 바뀌어yqedcbaz가 된다.SLICE 1 7을 실행하면yqedcbaz[1:7]에 해당하는qedcba가 된다.
따라서 함수가 반환해야 하는 최종 문자열은 qedcba이고, 반환값의 자료형은 str이다.
예제 입력 2
banana
2
REPLACE a o
SLICE 1 5
예제 출력 2
onon
<class 'str'>
코멘트