문자열 문제풀이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