NEUQACM OJ 1552: Your name
来源:互联网 发布:window10无法安装软件 编辑:程序博客网 时间:2024/05/16 03:35
点击看题(逃
由于是英文题,先让我们来分析一下题意
//由于翻译水平有限
以下为Google翻译结果:
最近,plyjdz被很多朋友问到了他的女朋友,但是plyjdz认为他没有。有一天,他在桌子上发现一张纸条,但是他不明白。可以告诉他note是什么意思?
输入:
你会得到一个字符串(长度<= 50)的注释。
*本说明包括“a“ - “z”,“A” - “Z”,数字和符号
输出:
如果注释中包含“pyd”,则应该告诉plyjdz“她的名字是pyd”
如果不是,你应该告诉plyjdz“你应该等待”
* pyd可能会被数字,’A’ - ‘Z’or符号分开。
目标:!找到pyd!当然这是有顺序的,不仅仅是简单的找到这三个字符哟
于是想到可以立下flag来标记
//以下为部分核心代码
int len=st.size(); bool flag[3];//flag大法好 memset(flag,false,sizeof(flag)); for(int i=0;i<len;i++) { if(st[i]=='p'&&flag[0]==false)//第一次读取'p'立下flag[0] { flag[0]=true; } else if(st[i]=='y'&&flag[0]==true)//在读取'p'后第一次读取'y' { flag[1]=true; } else if(st[i]=='d'&&flag[0]==true&&flag[1]==true)//读取py后第一次读取'd' { flag[2]=true; } }
然鹅重点来了 我们的oj显示的是部分通过,也就是说似乎有特殊情况没有考虑到??
//让我们红橙作伴 活的潇潇洒洒(逃
再次看看题目,我们发现!!!pyd只会被数字,大写字母,符号分开
所以->pppyyyddd的输出结果应该是”You should wait”
于是经过思考,我们有了下面的解法
//虽然很暴力
核心思路:
找到输入字符串中的p,y,d三个字符并把它们按顺序赋给新的字符串newst,然后开始暴力循环
按顺序截取三个字符作为新的字符串,若截取后的字符串==“pyd”就说明实现了我们的目标啦
//用substr来实现
用法:字符串变量名.substr(开始位置,截取的字符串长度)
for(int i=0;i<len2-2;i++) { //cout<<newst.substr(i,3)<<endl; if(newst.substr(i,3)=="pyd") { flag=true; cout<<"Her name is pyd"<<endl; } }
阅读全文
0 0
- NEUQACM OJ 1552: Your name
- NEUQACM OJ 1590
- NEUQACM OJ 1836
- NEUQACM OJ:1089Surface Area
- NEUQACM OJ:1095--鸡兔同笼
- NEUQACM OJ:1500--编程世界的大门
- NEUQACM OJ:1255--查找最大元素
- NEUQACM OJ:1299【白书习题】年份
- NEUQACM OJ:1405 茵茵的第一课
- NEUQACM OJ 1015:同因查找
- NEUQACM OJ:1072--谭浩强C语言(第三版)习题9.3
- NEUQACM OJ:1149--【C语言训练】排序问题<2>
- NEUQACM OJ:1071谭浩强C语言(第三版)习题9.2
- NEUQACM OJ:1070 谭浩强C语言(第三版)习题9.1
- NEUQACM OJ 1008: C基础-公约公倍
- Please Enter your name
- Your name is mud. 声名狼藉
- codechef+Your Name is Mine
- Linux下安装JDK
- 数据结构实验之查找六:顺序查找
- 使用fileUpload实现上传下载demo
- 欢迎使用CSDN-markdown编辑器
- 程序员面试宝典随笔记(一)--内存管理详解
- NEUQACM OJ 1552: Your name
- Caffe学习系列(19): 绘制loss和accuracy曲线
- 网络调试助手连接远程服务器
- 牛客算法-第二章
- Oracle操作Session的方法
- Effective C++总结
- 关于mapreduce运行错误
- StartActivityForResult方法和finish方法的一些理解
- bzoj4554 [Tjoi2016&Heoi2016]游戏(二分图最大匹配)