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. 加拿大Assignment写作如何靠第一句话来吸睛?

    最近有留学加拿大的同学咨询我们如何写好assignment的首句,关于话题背景的引入,如何才能自然精妙,让老师对后文充满期待.小编用一句话总结今天的策略:陈述一个跟话题直接相关的事实.“直接相关”,保 ...

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

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

  3. swoole之任务和定时器

    一.代码 <?php use Swoole\Server; /** * 面向对象的形式 + task + timer */ class WebSocket { public $server; p ...

  4. 学习进度-04 Scala的学习

    在Scala中,主函数的定义是def main(args: Array[String]),Scala中必须使用对象方法 1.变量: Scala中的变量分为两种var和val. 例如:def main( ...

  5. windows制作动态链接库和使用一

    制作: //myDll.h _declspec(dllexport) int add(int a,int b); _declspec(dllexport) int sub(int a,int b); ...

  6. C++面试常见问题——14内存管理

    内存管理 内存管理由三种方式: 自动存储 静态存储 动态存储 自动存储 对于函数的形参.函数内部变量.和结构体变量等,编译器在函数运行过程中在栈中自动对其分配内存,调用结束后对其进行销毁.变量的声明周 ...

  7. [Codeforces]1263D Secret Passwords

    题目 One unknown hacker wants to get the admin's password of AtForces testing system, to get problems ...

  8. Day6 - B - 采花 HYSBZ - 2743

    萧芸斓是Z国的公主,平时的一大爱好是采花.今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花 .花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采花.公 ...

  9. python SSTI绕过

    原理首先以jinja2模板注入为例:{{request[request.args.param]}} 可以用 {{request|attr(request.args.param)}} 替代绕过" ...

  10. Codeforces1243C Tile Painting

    原题面:https://codeforces.com/contest/1243/problem/C 题目大意:给定数字n,有n个方块,第i个和第j个之间的距离(abs(i-j))如果是n的因子,那么第 ...