题目:最强大脑 
时间限制:C/C++语言 1000MS;其他语言 3000MS 
内存限制:C/C++语言 65536KB;其他语言 589824KB 
题目描述: 
小B乘火车和朋友们一起在N市到M市之间旅行。她在路途中时睡时醒。当她醒来观看窗外的风景时,注意到每个火车站都有一种特别颜色的旗帜,但是她看到的旗帜仅仅是经过的一小部分。小B在乘车过程中有两次清醒的时间,她到达旅程终点时处于睡梦中。出站时,她和朋友们谈论着一路的见闻,朋友们觉得很有意思。 
他们把N到和M之间经过车站的旗帜颜色依次列出来,然后告诉你小B记得的旗帜颜色序列,让你判断小B究竟是从N和M之间哪些方向才能看到所说颜色的旗帜,还是根本就不可能看到?颜色用字母代表,相同的字母代表相同的颜色,不同的字母则表示不同的颜色。 
输入 
输入中有多组测试数据。每组测试数据包含三行,第一行为一个由小写拉丁字母构成的非空字符串,长度不超过10^5,表示N到M之间车站的颜色。火车从M向N运行时,经过的车站相同,只是方向相反。第二行为小B在第一次睡醒时看到的颜色序列,第三行为小B在第二次睡醒时看到的颜色序列。两个序列都是小写的拉丁字母构成的字符串,长度不超过100个字母。每个序列的颜色顺序排列按小B看到的时间顺序排列。 
输出 
对每组测试数据,在单独的行中输出小B的旅行方向。 
forward – 由N到M方向; 
backward – 由M到N方向; 
both – 两种方向都有可能; 
invalid – 不可能看到这样的颜色序列;

样例输入 
atob 


aaacaaa 
aca 
aa 
样例输出 
forward 
both

Hint 
火车假定时刻处于运动状态,不会两次看到同一个旗帜。N市和M市的车站没有旗帜

我的实现如下:

// trainDirectionn.cpp : 定义控制台应用程序的入口点。
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
int main()
{string str,str1,str2;bool flag1=false,flag2=false;unsigned int index=0;cin>>str>>str1>>str2;if(!str.empty()){//forwardif(!str1.empty()&&str.find(str1)!=string::npos)  //子串1非空且能在母串中找到{index=str.find(str1)+str1.length();          //找到母串中子串2的开始查找位置flag1=(!str2.empty()&&str.find(str2,index)!=string::npos)?true:false;}reverse(str.begin(),str.end());                  //反转母串//backwardif(!str1.empty()&&str.find(str1)!=string::npos){index=str.find(str1)+str1.length();flag2=(!str2.empty()&&str.find(str2,index)!=string::npos)?true:false;}<span style="white-space:pre">    </span>/*输出*/if(flag1&&flag2)cout<<"both"<<endl;else if(flag1)cout<<"forward"<<endl;else if(flag2)cout<<"backward"<<endl;elsecout<<"invalid"<<endl;}return 0;
}

最强大脑 奇虎360 2017校园招聘笔试题相关推荐

  1. 奇虎360 2013校园招聘笔试题

    转载自 http://blog.csdn.net/wanglongfei_hust/article/details/10041337 我的答案与解析: 1. D  2. C  3. B  4. A   ...

  2. 360 2013校园招聘笔试题(含参考答案)

    360 2013校园招聘笔试题(含参考答案) 参考答案: 1.D  5*5*5=125 2.C  排除法 3.A  仅个人意见 4.A 5.D   ABC三语句一定保留,D不确定,EF一定删除 6.不 ...

  3. 奇虎360 2014校园招聘面试

    面试时间:2013-10-29 下午4:45 到 晚上7点半 面试地点:360大厦,酒仙桥路6号院2号楼 面试职位:服务器端研发工程师 面试形式:一对一,聊天+写代码 面试题目: 1.C和C++ ● ...

  4. 奇虎360 2015校园招聘笔试编程题

    题目一: 写一个函数,根据两文件的绝对路径算出相对路径. 如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c&q ...

  5. 爱奇艺2017校园招聘笔试题

    成长值计算 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 爱奇艺累计有2000万会员,为了提高会员权 ...

  6. 网易2017校园招聘笔试题 优雅的点

    小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方.小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他. 例如:半径的平方如果为25 优雅的 ...

  7. 网易2017校园招聘笔试题 跳石板

    小易来到了一条石板路前,每块石板上从1挨着编号为:1.2.3--. 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X ...

  8. 去哪儿2017校园招聘笔试题

    import java.util.Scanner;/*** filename extension* 时间限制:C/C++语言 1000MS:其他语言 3000MS* 内存限制:C/C++语言 6553 ...

  9. 去哪儿2017校园招聘笔试题——获得文件扩展名filename extension

    1. 题目 Please create a function to extract the filename extension from the given path,return the extr ...

最新文章

  1. ping命令工具:同时ping多个IP
  2. 利用微软Atlas消费外部Web服务
  3. 【Java源码分析】Vector源码分析
  4. 【jquery模仿net控件】初步GridView模型实现,及其简单应用
  5. linux 下实现负载均衡群集(NAT方式)
  6. 【操作系统复习】进程控制
  7. 从两个模型带你了解DAOS 分布式异步对象存储
  8. 4.Java 面试题整理(JSP 篇)
  9. Dubbo 生态添新兵,Dubbo Admin 发布 v0.1
  10. 【树】Unique Binary Search Trees II
  11. MATLAB显示中文乱码问题 MATLAB2016
  12. java网吧系统_基于Java的智能网吧管理系统.doc
  13. 10个谷歌浏览器调试技巧
  14. 一文搞懂机器学习中的缺失值处理(超详细)
  15. Compose系列 五 副作用 side-effect
  16. 金属类的大宗商品创下新高,对冲基金疯狂买涨
  17. Python第五周作业之选择题
  18. 微型机器学习,会是下一代AI革命吗?
  19. 自制Unity文件查找器,支持拼音搜索
  20. 彻底关闭win10更新自动更新 卸载win10自带杀毒软件 新增联想软件 lenovo quick fix

热门文章

  1. 环信IM即时通讯的简单集成
  2. java图片处理以及pdf转图片
  3. 将网页保存为mht文件
  4. 铿锵玫瑰回来了 男足还是臭脚吗
  5. 解码Base64并展示图片
  6. DataNode(面试开发重点3)
  7. Git提交指定的文件
  8. Swift:什么时候需要mutating这个参数
  9. 7-5 重要的话说三遍 (5 分)
  10. 数据结构与算法实验题 9.8 转移炸弹