zoukankan      html  css  js  c++  java
  • 字符串入门练习题9 聊天室 题解

    题目出处:http://codeforces.com/problemset/problem/58/A

    题目描述

    聪聪最近学会了使用Internet。
    于是他进入了一个聊天室,并决定向大家打一声招呼——说“hello”。
    但是因为聪聪的手指不是很灵活,所以他在打“hello”的过程中可能会触碰到一些别的键盘。
    聪聪打了一个字符串 s 。
    对于这个字符串 s ,如果我们能够从 s 中删除一些字符(当然也可以不删除),使得剩下的字符在不交换次序的情况下恰好等于“hello”,那么我们就可以认为聪聪打了“hello”。
    举个例子:
    如果聪聪打了一串字符串 "ahhellllloou" ,我们就可以认为他打了 "hello";
    而如果聪聪打了一串字符串 "hlelo" ,我们则认为他没有打 "hello" 。
    请帮忙确定我们会认为聪聪打了 "hello" 还是没有打。

    输入格式

    输入包含一个字符串 s ,用于表示聪聪打的字符。s 的长度不会超过 100。

    输出格式

    对于聪聪输入的字符串 s ,如果我们认为他打了 "hello",则输出 "YES";否则,输出 "NO"。

    样例输入1

    ahhellllloou
    

    样例输出1

    YES
    

    样例输入2

    hlelo
    

    样例输出2

    NO
    

    题目分析

    我们可以开一个变量 cnt,cnt一开始等于 0,然后我们去遍历字符串 s。
    对于每一个遍历到的字符 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;
    }
    
  • 相关阅读:
    Java -- JDBC 批处理
    Java -- JDBC mysql读写大数据,文本 和 二进制文件
    Python之操作符优先级
    闲聊之Python的数据类型
    UPX和WinUpack压缩壳的使用和脱法
    改进我们的小游戏
    Python while循环语法
    Python条件分支语法
    python条件分支
    小插曲之变量和字符串
  • 原文地址:https://www.cnblogs.com/zifeiynoip/p/11450589.html
Copyright © 2011-2022 走看看