string类中有很多好用的函数,这里介绍在string类字符串中查找字符串的函数。

string类字符串中查找字符串一般可以用:

1、s.find(s1)函数,从前往后查找与目标字符串匹配的第一个位置;

2、s.rfind(s1)函数,从后往前查找与目标字符串匹配的最后一个位置;

3、s.find_first_of(s1),查找在s1中任意一个字符在s中第一次出现的位置

4、s.find_last_of(s1)       查找在s1中任意一个字符在s中最后一次出现的位置

下面给出一道例题:

出勤记录

小Hi的算法课老师每次上课都会统计小Hi的出勤记录。迟到会被记录一个L,缺席会被记录一个A,按时上课会被记录一个O。

一学期结束,小Hi的出勤记录可以看成是一个只包含LAO的字符串,例如"OOOOLOOOLALLO……"。

如果小Hi整学期缺席不超过1次,并且没有连续3次迟到,小Hi的出勤记录就算合格。

现在给出小Hi的出勤记录,你能判断他是否合格么?

Input

输入第一行包含一个整数T(1 <= T <= 10),代表测试数据的组数。

以下T行每行一个程度不超过100的字符串S,代表小Hi的出勤记录。

Output

对于每一份出勤记录,输出YES或者NO表示该份记录是否合格。

Sample Input

3
LLOLLALL
OLLLOOOO
OOAAOOOO

Sample Output

YES
NO
NO

下面给出代码:

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
int t;
scanf("%d",&t);
while(t--){
string s;
cin>>s;
int a=s.find('A'),b=s.rfind('A');
if(a!=b) printf("NO\n");
else if(s.find("LLL")!=-1) printf("NO\n");
else printf("YES\n");
}
}

代码这样写看起来很舒服,如果用字符数组写估计又要费一番功夫了。

本人弱鸡一枚,如有错误欢迎指出,谢谢。

hiho1482出勤记录II(string类字符串中查找字符串,库函数的应用)的更多相关文章

  1. Leetcode 552.学生出勤记录II

    学生出勤记录II 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值. 学生出勤记录是只包含以下三个字符的字符串: ' ...

  2. Java实现 LeetCode 552 学生出勤记录 II(数学转换?还是动态规划?)

    552. 学生出勤记录 II 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值. 学生出勤记录是只包含以下三个字符的 ...

  3. c++ string类使用及用string类解决整行字符串输入

    下面随笔给出c++ string类使用及用string类解决整行字符串输入. string类 使用字符串类string表示字符串 string实际上是对字符数组操作的封装 string类常用的构造函数 ...

  4. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  5. C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串

    方法一: public static int indexOf (字符串/字符,int从第几位开始,int共查几位) string tests = "1absjjkcbfka2rsbcfak2 ...

  6. 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)

    1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的 ...

  7. [Swift]LeetCode552. 学生出勤记录 II | Student Attendance Record II

    Given a positive integer n, return the number of all possible attendance records with length n, whic ...

  8. [LeetCode] Find And Replace in String 在字符串中查找和替换

    To some string S, we will perform some replacement operations that replace groups of letters with ne ...

  9. 552 Student Attendance Record II 学生出勤记录 II

    给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值.学生出勤记录是只包含以下三个字符的字符串:    1.'A' : ...

随机推荐

  1. 吴裕雄--天生自然JAVAIO操作学习笔记:System类对IO的支持和BuffereRead

    import java.io.OutputStream ; import java.io.IOException ; public class SystemDemo01{ public static ...

  2. NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分

    网络层次: OIS网络模型概念:  OSI层次--应用层:  OSI层次--表示层:  OSI--会话层:  OSI--传输层: OSI--网络层: IP地址的概念说明: OSI数据链路层: OSI= ...

  3. centos6 初次安装成功,未显示eth0网卡的信息

    https://www.cnblogs.com/yecao8888/p/6364830.html

  4. aforge视频录像,对界面进行重绘

    由于项目需要,需要录像的时候在界面加多一个圆圈,并且一起录制下来. 只需要在NewFrame增加以下代码 private void videoSourcePlayer1_NewFrame(object ...

  5. sftp 多用户安装与配置

    sftp 是 Secure File Transfer Protocol 的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH 的一部分,由于这种传输方式使用了加密/解 ...

  6. vSphere 计算vMotion的迁移原理

    1. 计算vMotion 的应用场景 1). 计划内停机维护 2). 提高资源的利用率 2. 计算vMotion 需求: 1).共享存储 vMotion需要解决的核心问题就是:将VMs的内存从源ESX ...

  7. 剑指offer第12题打印从1到n位数以及大整数加法乘法

       字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...

  8. PHP: isset与empty的区别

    PHP的isset()函数 一般用来检测变量是否设置 功能:检测变量是否设置 返回值: 若变量不存在则返回 FALSE 若变量存在且其值为NULL,也返回 FALSE 若变量存在且值不为NULL,则返 ...

  9. 配置thinkphp对mysql线上线下切换不同环境的配置 - (mysql-thinkphp) (1)

    1.先打印出配置项的信息,在Index控制器下面的index->index里面设置 namespace app\index\controller; class Index { public fu ...

  10. Wordpress自动更新失败

    Wordpress自动更新失败 一.手动升级Wordpress教程第一步:备份好Wordpress数据 在决定手动升级Wordpress前,你需要做好Wordpress的数据备份工作,以防手动升级失败 ...