2017校招-360火车行进方向判定题
2016-09-10 21:33
183 查看
判定火车前进方向,一路坐火车M-N站之间,每一站有一面旗帜,
小明中途醒了两次,每次都看到了一个红旗序列,判定火车可能的行进方向,forward,backward,both,invalid输出结果
输入分为三行,第一行为火车行进序列,
第二行为第一次醒来时看到的序列
第三行为第二次醒来时看到的序列
测试用例:
atob
a
b
输出:forward
iloveit
it
lo
输出:backward
icallitimpossible
possible
timposs
输出:invalid
youseeitseeit
see
it
输出:both
小明中途醒了两次,每次都看到了一个红旗序列,判定火车可能的行进方向,forward,backward,both,invalid输出结果
#include<iostream> #include<string> #include<vector> using namespace std; void strongBrain(){ string s,a,b; while(1){ s="";a="",b=""; cin>>s>>a>>b; vector<int> avec_beg,avec_end,bvec_beg,bvec_end; if(s!=""){ int a_beg=0,b_beg=0; int flag1 = -1,flag2=-1; while(a_beg!=-1){ a_beg = s.find(a,a_beg); if(a_beg!=-1){ avec_beg.push_back(a_beg); avec_end.push_back(a_beg+a.size()-1); a_beg = a_beg + a.size(); } } while(b_beg!=-1){ b_beg = s.find(b,b_beg); if(b_beg!=-1){ bvec_beg.push_back(b_beg); bvec_end.push_back(b_beg+b.size()-1); b_beg = b_beg+b.size(); } } for(int i=0;i<avec_beg.size();++i){ for(int j=0;j<bvec_beg.size();++j){ if(avec_end[i]<bvec_beg[j])flag1=1; if(bvec_end[j]<avec_beg[i])flag2=1; } } if(flag1==1&&flag2==1)cout<<"both"<<endl; else if(flag1==1&&flag2==-1)cout<<"forward"<<endl; else if(flag2==1&&flag1==-1)cout<<"backward"<<endl; else cout<<"invalid"<<endl; } else break; } } int main() { strongBrain(); return 0; }
输入分为三行,第一行为火车行进序列,
第二行为第一次醒来时看到的序列
第三行为第二次醒来时看到的序列
测试用例:
atob
a
b
输出:forward
iloveit
it
lo
输出:backward
icallitimpossible
possible
timposs
输出:invalid
youseeitseeit
see
it
输出:both
相关文章推荐
- 2017校招面经(BAT、搜狗、搜狐、一点资讯、360、华为优招)
- 2017校招 360 笔试题 编程题 内存管理
- 2017校招面经(BAT、搜狗、搜狐、一点资讯、360、华为优招)
- 2016校招秋招测试开发面试问题总结(360、滴滴、美团)
- 2017 深度学习前沿方向
- 2017京东校招编程题
- 牛客网编程练习之去哪儿网2017校招题:身份证分组
- 美团2017校招-拼凑钱币
- 2017京东校招编程题 烽火台
- 2017盛大游戏2017前端工程师校招笔试题总结
- 2017校招华为安卓技术面面试题
- 今日头条2017校招笔试题
- 2017校招面试【京东、顺丰科技、招银网络科技、去哪儿网】
- 算法整理——2017欢聚时代校招编程题
- HDU 1175 连连看 (BFS带方向的判定)
- 如何在经典的内转子无刷电机绕组示意图用右手定则判定线圈的感生电动势的方向
- 2017漫长又坎坷的校招之路
- 牛博网 京东2017校招编程题 python解答
- 阿里巴巴2017校招C++岗位在线编程题-RNA嵌套
- 欢聚时代2017校招笔试题目(JAVA基础类)A卷--9