6550 부분 문자열
아이디어
문자열 s를 이루는 모든 문자 c에 대해 문자열 t에서 c를 찾는다.
단, c2보다 이전에 등장한 c1의 문자열 t에서의 index값은 c2의 문자열 t에서의 index값보다 작아야한다.
오답
입력이 끝날때까지 출력하는 문제 유형
출력이 완료되고 입력값이 없을 때(enter만 입력) 프로그램이 종료되도록 구현해야한다.
더 이상 입력이 없는데 input
으로 입력을 기다리는 경우 EOFError가 발생한다.
import sys
input = sys.stdin.readline
def sol():
s,t = input().split()
if len(s) > len(t):
return False
else:
idx = -1
for i in range(len(s)):
if len(t) == 0:
return False
idx = t.find(s[i])
if idx<0:
return False
t = t[idx+1:]
return True
while True:
if sol():
print("Yes")
else:
print("No")
정답 코드
try
except
를 사용해 EOFError
를 처리해주면 된다.
import sys
input = sys.stdin.readline
def sol():
s,t = input().split()
if len(s) > len(t):
return False
else:
idx = -1
for i in range(len(s)):
if len(t) == 0:
return False
idx = t.find(s[i])
if idx<0:
return False
t = t[idx+1:]
return True
while True:
try:
if sol():
print("Yes")
else:
print("No")
except:
break
reference
Comments