Match the string--hdu1797(模拟)
http://acm.hdu.edu.cn/showproblem.php?pid=1797
就是模拟
我的思路是标记aba 和h的位置
然后就判断是否正确 就行了
还有就是 最后 fkfkfkfk交叉也可以
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <math.h>
#include <ctype.h> using namespace std;
#define memset(a,b) memset(a,b,sizeof(a))
#define N 101000
typedef long long ll;
char str[N]; int main()
{
int T; scanf("%d",&T);
while(T--)
{
int flag=;
scanf("%s",str);
int len=strlen(str);
int abc,h;
abc=h=-;
if(strstr(str,"aba"))
abc=strstr(str,"aba")-str;
if(strstr(str,"h"))
h=strstr(str,"h")-str;
if(abc==- || h==- || h==len-)
flag=;
for(int i=; i<abc; i++)
{
if(str[i]!='a')
{
flag=;
break;
}
}
int v1=,v2=;
for(int i=abc+; i<h; i++)
{
if(str[i]!='b' && str[i]!='d')
{
flag=;
break;
}
if(str[i]=='d' && str[i]=='b')
{
flag=;
break;
}
if(str[i]=='b')
v1++;
if(str[i]=='d')
v2++;
}
if(v1!= && v2==)
flag=;
if(v1>)
flag=;
v1=v2=;
for(int i=h+; str[i]; i++)
{
if(str[i]!='f' && str[i]!='k')
{
flag=;
break;
}
if(str[i]=='f')
v1++;
if(str[i]=='k')
v2++;
}
if(v1== && v2==)
flag=;
if(v1== && v2== && v1!=v2)
flag=;
if(flag==)
printf("NO\n");
else
printf("YES\n");
}
return ;
}
Match the string--hdu1797(模拟)的更多相关文章
- Oracle问题之literal does not match format string
问题: oerr ora 186101861, 00000, "literal does not match format string"// *Cause: Literals i ...
- 解决sqoop 导入oracle表时 --split-by参数为日期类型时的报错:ORA-01861: literal does not match format string
报错栈: -- ::, INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: select " ...
- 解决:Oracle 异常 ORA-01861: literal does not match format string(字符串格式不匹配)
今天在写存储过程的时候,老是报一个错.如下,记录下来,以供日后查阅. 报错: Oracle 异常 ORA-01861: literal does not match format string(字符 ...
- Codeforces Round #550 (Div. 3) E. Median String (模拟)
Median String time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 2018.08.22 NOIP模拟 string(模拟)
string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字 ...
- Codeforces Round #550 (Div. 3) E. Median String (思维,模拟)
题意:给你两个字符串\(s\)和\(t\),保证\(t\)的字典序大于\(s\),求他们字典序中间的字符串. 题解:我们假设题目给的不是字符串,而是两个10禁止的正整数,那么输出他们之间的数只要把他两 ...
- 【CF1015B】Obtaining the String(模拟)
题意:给定两个字符串,每次可以交换相邻两个字符,给出任意一组交换次数小于1e4的方案使得a串成为b串,输出交换的次数与位置,无解输出-1 n<=50 思路:每次找到第一个不相同的字符,从后面找到 ...
- csu - 1536: Bit String Reordering (模拟)
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1536 不知道为何怎么写都写不对. 这题可以模拟. 虽然题目保证一定可以从原串变成目标串,但是不一定 ...
- UVaLive 6832 Bit String Reordering (模拟)
题意:给定一个01序列,然后让你你最少的操作数把这它变成目标. 析:由于01必须是交替出现的,那么我们就算两次,然后取最值. 代码如下: #pragma comment(linker, "/ ...
- String Successor(模拟)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3490 题意:给出一个字符串,一个操作次数,每次操作从当前字符串最右边的字符 ...
随机推荐
- Excel数据导入SQL Server
基本有2种方案,都是无需安装Office的方案 Ole DB读取 + BulkCopy 获取Excel各个SheetName //连接串 string strConn = "Provider ...
- vue-cli下面的config/index.js注解 webpack.base.conf.js注解
config/indexjs详解上代码: 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io ...
- UVA 11971 Polygon 多边形(连续概率)
题意: 一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率? 思路: 数学题.要求的是概率,明显与n无关. 将木条围成一个圆后再开切k+1刀,得到k+1段. ...
- js中重载问题
在js中是没有重载的 但是 Arguments对象(可以实现模拟重载的效果) 利用arguments对象的length属性,可以获取函数接收的参数的个数 例如: function add(){ i ...
- 安卓adb在拨号键盘上输入井号(#)
安卓系统下由于#号是属于内定字符,需要转义为%23第一种方式:adb shell service call phone 1 s16 "%23"第二种方式:adb shell am ...
- 雷林鹏分享:Lua 基本语法
Lua 学习起来非常简单,我们可以创建第一个 Lua 程序! 第一个 Lua 程序 交互式编程 Lua 提供了交互式编程模式.我们可以在命令行中输入程序并立即查看效果. Lua 交互式编程模式可以通过 ...
- JavaSE-25 AWT
学习要点 关于AWT AWT容器 布局管理器 AWT组件 事件处理 关于AWT java.awt包与子包 AWT软件包 说明 import java.awt.*; 基本组件使用工具 import ...
- MySQL中外键删除、更新
MySQL支持外键的存储引擎只有InnoDB..在创建外键的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE. 其 ...
- python+Eclipse+pydev环境搭建1
编辑器: Eclipse + pydev插件 1. Eclipse是写JAVA的IDE, 这样就可以通用了,学习代价小. 学会了Eclipse, 以后写Python或者JAVA 都可以. 2. Ec ...
- Linux vsftpd服务
vsftpd服务 由vsftpd包提供 不再由xinetd管理 用户认证配置文件:/etc/pam.d/vsftpd 服务脚本: /usr/lib/systemd/system/vsftpd.serv ...