데이터 구조 문자열 (1) 이 모두 있 습 니 다.

데이터 구조 (7)
데이터 구조 와 알고리즘 과정 에서 얻 은 소감 과 지식 점 의 정 리 를 배 워 서 제 가 직접 찾 을 수 있 고 여러분 과 함께 교류 할 수 있 기 를 바 랍 니 다.
- 그 안에 있어 -
1. 제목 설명
새로운 암호 화 기술 을 설계 하 였 습 니 다. 문자열 의 문자 사이 에 무 작위 문자열 을 삽입 하여 정 보 를 인 코딩 할 수 있 습 니 다.특허 문제 로 기 존 정보 에 문자열 을 만 들 고 삽입 하 는 방법 에 대해 서 는 자세히 논의 하지 않 을 것 이다.단, 당신 의 방법 을 검증 하기 위해 서 는 원래 의 정보 가 마지막 문자열 에 있 는 지 검증 하 는 프로그램 을 쓸 필요 가 있 습 니 다.
두 문자열 s 와 t 를 지정 하려 면 s 가 t 의 '하위 열' 인지 판단 해 야 합 니 다.즉, t 의 일부 문 자 를 제거 하면 나머지 문 자 는 s 로 연 결 됩 니 다.
1.1 입력
여러 개의 테스트 샘플 을 포함 하여 입력 하 십시오.각각 빈 칸 으로 구 분 된 알파벳 숫자 ASCII 문자 로 구 성 된 두 개의 특정한 문자열 s 와 t 입 니 다.s 와 t 의 길 이 는 100000 을 넘 지 않 습 니 다.
1.2 출력
모든 테스트 사례 에 대해 s 가 t 의 "하위 열" 이 라면 "Yes" 를 출력 합 니 다. 그렇지 않 으 면 출력 "No" 를 출력 합 니 다.
1.3 샘플 입 출력
샘플 입력 시퀀스 후속 개인 압축 VERDI viva Vittorio EmanueleReDiItalia caseDoesMatter CaseDoesMatter 샘플 출력 Yes No Yes No Yes No
2. 코드 구현
c
#include
#include

int main()
{
	char str_s[100001],str_t[100001];
	while(scanf("%s %s",str_s,str_t) != EOF)
	{
		int length_s=strlen(str_s),length_t=strlen(str_t),num=0,strlong=0;
		for(int i=0;i<length_s;++i)
		{
			if(num==length_t)
				break;
			for(;num<length_t;num++)
			{
				if(str_s[i]==str_t[num])
				{
					strlong++;
					num++;
					break;
				}
			}
		}
		if(strlong==length_s)
			printf("Yes
"
); else printf("No
"
); } return 0; }

c++
#include
#include
using namespace std;
char str_s[100001],str_t[100001];
bool judge(char * s, char * t){
	while(*s != '\0' && *t != '\0'){
		while(*t != *s){
			t++;
			if(*t == '\0') return false;
		}
		s++,t++;
	}
	return *s == '\0';
}
int main(){
	while(scanf("%s%s",str_s,str_t) != EOF){
		if(strlen(str_s) > strlen(str_t)) puts("No");
		else if(judge(str_s,str_t)) puts("Yes");
		else puts("No");
	}
	return 0;
}

3. 코드 설명
이 문제 의 기본 적 인 사 고 는 문자열 s 의 모든 문자 와 문자열 t 의 모든 문 자 를 비교 하 는 것 입 니 다. 주의해 야 할 것 은 s 의 한 문자 대비 가 끝 난 후에 t 에 같은 문자 가 있 으 면 s 의 다음 문 자 는 이 문자 의 위치 에서 시작 합 니 다.t 에 같은 문자 가 없 으 면 'No' 를 직접 출력 합 니 다.

좋은 웹페이지 즐겨찾기