문자열 문제풀이2
2022. 11. 9. 23:55ㆍ파이썬(Python)
반응형
Q) 부분 문자열의 개수
- 문자열 A와 문자열 B를 입력
- 문자열 B가 문자열 A의 부분 문자열로 등장하는 횟수를 출력
string=input()
substring=input()
cnt=0
for i in range(len(string)-len(substring)+1):
if substring==string[i:i+len(substring)]:
cnt+=1
print(cnt)
결과
>> ababababab
>> ba
4
Q) 문자열 프로그램
- 문자열 string과 자연수 n을 입력
- n개의 질의를 수행
- 질의를 수행할 때마다 수행한 string을 출력.
- string은 질의에 따라 계속 변함
- 질의의 종류 2가지.
- swap a b : a번째 문자와 b번째 문자를 교환 후 출력. (1 <=a <b)
- change a b : 문자 a를 전부 문자 b로 변경 후 출력 (a, b는 소문자 알파벳)
string, n=input().split()
n=int(n)
for _ in range(n):
a,b,c=input().split()
if a=='swap':
b,c=int(b),int(c)
b_letter,c_letter=string[b-1], string[c-1]
string=string[:b-1]+c_letter+string[b:]
string=string[:c-1]+b_letter+string[c:]
print(string)
elif a=='change':
for i in range(len(string)):
if string[i]==b:
string=string[:i]+c+string[i+1:]
print(string)
결과
>> accd 3
>> change e f
accd
>> change c a
aaad
>> swap 2 4
adaa
Q) 문자열 연쇄 삭제
- 문자열과 문자열의 부분 문자열을 입력
- 부분 문자열이 있으면 부분 문자열을 삭제하여 남은 문자열들을 이어 붙인다.
- 부분 문자열이 없을 때까지 반복하고 부분 문자열이 없으면 출력한다.
string=input()
substring=input()
while True:
if string.find(substring)>-1:
t=string.find(substring)
string=string[:t]+string[t+len(substring):]
else:
break
print(string)
결과
>> bbababab
>> ab
bb
Q) 첫 번째와 마지막
- 문자열을 입력
- 문자열 내에서 첫 번째 문자열은 마지막 문자열로
- 마지막 문자열은 첫 번째 문자열로 모두 교체
- 예를 들어 banana를 입력하면 첫 번째 문자열은 b, 마지막 문자열은 a이므로
- b는 a로, a는 b로 모두 교체 => 결과는 abnbnb
string=input()
a=string[0]
b=string[-1]
for i in range(len(string)):
if string[i]==a:
string=string[:i]+b+string[i+1:]
elif string[i]==b:
string=string[:i]+a+string[i+1:]
print(string)
결과
>> abcaabccaab
bacbbaccbba
'파이썬(Python)' 카테고리의 다른 글
문자열 변환 (0) | 2022.12.24 |
---|---|
문자열 회전, 아스키 코드 (0) | 2022.11.10 |
문자열 문제 풀이 (0) | 2022.11.08 |
문자열 (0) | 2022.11.03 |
2차원 배열 활용 2 (0) | 2022.11.03 |