문제에 연습을 문자열 9 채팅 솔루션을 얻기

: 용으로 작성된 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;
}

추천

출처www.cnblogs.com/zifeiynoip/p/11450589.html