제목 설명
일반 텍스트 편집기 신속하게 문서에서 특정 단어를 찾을 수 있습니다 단어 기능을 찾을 수있다, 일부는 특정 단어가 문서에 나타나는 횟수를 셀 수 있습니다.
이제,이 기능을 프로그래밍하고, 특정 요구 사항은 다음과 같습니다 당신은 출력에게, 그것은 주어진 문서에 나타나는 횟수와 첫 번째 항목의 총수 단어를 감안할 때. 참고 : 주어진 단어 경우 경기 단어, 대소 문자 구분과 동일하지만, 즉 단어의 기사를 구분 경우 독립적 인 단어로 제공해야합니다 정확히 일치를 요구, (샘플 1 참조) 기사의 일부분 만 단어가 일치하지 않습니다 (이 샘플 참조).
입력 형식
총 2 개 라인.
첫 번째 문자 만 포함 된 문자열의 동작은, 주어진 단어를 나타냅니다;
첫 번째 에만 해당 기사를 나타내는 문자와 공백을 포함 할 수있는 문자열, 두 가지 역할을합니다.
출력 형식
라인은 문서 특정 단어가 발견되면, 두 정수 사이의 공간에 의해 분리 된 두 개의 출력 정수이다 위치 먼저 문서 즉, 제 (나타나있는 문서에 나타나는 단어의 수는 발생이 문서로부터 위치에서 단어 위치의 첫 글자 제로) 상기 워드 문서에 나타나지 않는 경우, 정수의 직접 출사 - 1
샘플 입출력
기입
하기
이거나되지 않게하는 것은 문제이다
수출
2 0
기입
하는
오스만 제국이 그 시간에 그 힘을 잃게나요
수출
-1
설명 / 팁
데이터 범위
. (1 개) ≤ 워드 길이 ≤ . 1 0.
1 개 ≤ 문서 길이 ≤ 1 , 0 0 0 , 0 0 0.
코드 :
#INCLUDE <cstdio>
#INCLUDE <알고리즘>
#INCLUDE <iostream>
사용 공간을 성병;
int로 주 () {
INT NUM = 0 , POS = 0 , fpos = - 1 ;
캐릭터 A, B, TEM = "" ;
CIN >> a 및
(a.end a.begin () () a.begin () : tolower를)를 변환;
) (getchar가;
의 getline (CIN, b);
(b.begin () b.end () b.begin () : tolower를)를 변환;
위한 ( INT 난 = 0 ; I <b.size을 (); I ++ ) {
경우 (b [I] == ' ' ) {
경우 (A == TEM) {
NUM을 ++ ;
경우 (fpos == - 1 ) {
fpos = I- tem.size ();
}
}
TEM = "" ;
계속 ;
}
TEM + = B [I];
}
경우 (fpos == - 1 ) {
의 printf ( " -1 " );
}
다른 {
의 printf ( " % D % D" , NUM, fpos);
}
}
실전 문제 :
- 실행될 때 혓바닥이, 개행 문자를 입력하는 모든 시작을 무시합니다 '\ n'과 공간,의 getline ()는 무시되지 않습니다
- 동작은 getchar가 ()이고 : 삭제 버퍼링 잔류 '\ n'
- 자열 소 :( 전송 헤더) #INCLUDE <알고리즘> 추가 할
(a.end a.begin () () a.begin () : tolower를)를 변환;
- 문자열 대문자 :( 전송 헤더)를 첨가 #INCLUDE <알고리즘> 될
(a.end a.begin () () a.begin () ::의 ToUpper) 변환;