2개의 문자열 s와 t가 주어졌을 때 s가 t의 부분 문자열인지 판단하는 프로그램을 작성하라. 부분 문자열을 가지고 있는지 판단하는 방법은 t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우를 이야기 한다.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다.
s와 t의 길이는 10만을 넘지 않는다.
출력
입력된 s와 t의 순서대로 s가 t의 부분 문자열인 경우 Yes라 출력하고 아닐 경우 No라고 출력한다.
예제 입력 1
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
예제 출력 1
Yes
No
Yes
No
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class No_6550 {
static String str;
static int idx;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
while((str=br.readLine())!=null){//입력이 더 이상 들어오지 않을 때 까지요
st=new StringTokenizer(str);
String s=st.nextToken();
String t=st.nextToken();
idx=0;
for(int i=0;i<t.length();i++){
if(s.charAt(idx)==t.charAt(i)){ //첫번째문자열(s)와 두번째 문자열이 같다면 idx 증가
idx++;
}
if(idx == s.length()) //idx가 첫 번째 문자열과 같다면 -> 첫번째 문자열, 두번째 문자열 똑같은거니깐
break;
}
if(idx==s.length()){
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
}
}
while((str=br.readLine())!=null)
: 입력이 들어올때까지 입력받는 코드s
: 첫 번째 문자열 t
: 두 번째 문자열