: 용으로 작성된 http://codeforces.com/problemset/problem/58/A
제목 설명
콩 콩은 최근 인터넷을 사용하는 것을 배웠다.
그래서 그는 대화방을 입력, 우리는 인사 연주하기로 결정 - "안녕하세요"고 말했다.
그는이 과정에서 "안녕하세요"재생 다른 키보드를 만지지 수 있도록 그러나 콩 콩의 손가락은 매우 유연하지 않기 때문에.
콩 콩은 문자열들했다.
이 문자열의, 우리가들에서 일부 문자를 제거 할 수있는 경우를 들어 (물론, 삭제할 수 없습니다) 그래서 "안녕하세요", 우리는 콩 콩을 재생 고려할 수 있습니다 정확히 동일한 순서를 변경하지 않고 문자의 나머지 "안녕하세요".
예를 들어 :
콩 콩은 문자열의 무리 싸움을하는 경우 "ahhellllloou"우리는 그를 고려할 수있는 "안녕하세요";
와 콩 콩은 "hlelo"문자열의 무리 싸움을하는 경우, 우리는 그가 안녕하세요 "재생되지 않았다고 생각 . "
우리는 콩 콩은 "안녕하세요"치거나 싸울 생각해야합니다 도와주세요.
입력 형식
입력 문자 표현 콩 콩을 연주, 문자열의 포함되어 있습니다. 의 길이는 100을 초과하지 않습니다.
출력 형식
그렇지 않으면, 출력 "NO"우리가 생각하는 경우 입력 문자열의 콩 콩, 그는 "안녕하세요"출력 "YES"했다.
샘플 입력 1
ahhellllloou
출력 샘플 1
YES
샘플 입력 2
hlelo
출력 샘플 2
NO
주제 분석
우리는 CNT가 0부터 시작 변수 CNT를 열 수 있습니다, 우리는 문자열의를 통과해야합니다.
각 이송 문자 c를 들어
만약 C == 'H'&& CNT 계 == 0 ++ CNT,
경우 C == 'E'&& CNT 계 == 1 CNT ++,
C == 'L'만약 CNT == 2 && | 3 CNT ++;
만약 C == 0 && CNT 계 == 4 CNT ++;
CNT> 4, 직접 "YES"로 출력하고 종료하는 경우,
경우 CNT <끝 = (4) 출력 "NO".
다음과 같이 코드가 실행된다 :
#include <bits/stdc++.h>
using namespace std;
string s;
int n, cnt;
int main() {
cin >> s;
n = s.length();
for (int i = 0; i < n; i ++) {
char c = s[i];
if (c == 'h' && cnt == 0) cnt ++;
else if (c == 'e' && cnt == 1) cnt ++;
else if (c == 'l' && (cnt == 2 || cnt == 3) ) cnt ++;
else if (c == 'o' && cnt == 4) {
puts("YES");
return 0;
}
}
puts("NO");
return 0;
}