2017年360公司校招Java研发笔试编程第一题
来源:互联网 发布:外星人设置灯光软件 编辑:程序博客网 时间:2024/05/16 06:49
2017年360公司校招笔试编程第一题
(服务端开发工程师-Java职位)
---------------------------------------------------------------------------------------------------------------
/*题目描述:
小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
a
b
aaacaaa
aca
aa
样例输出
forward
both
Hint
火车假定时刻处于运动状态,不会两次看到同一个旗帜。N市和M市的车站没有旗帜。*/
小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
a
b
aaacaaa
aca
aa
样例输出
forward
both
Hint
火车假定时刻处于运动状态,不会两次看到同一个旗帜。N市和M市的车站没有旗帜。*/
import java.util.Scanner;public class Main {/** 2017年360公司校招 编程1题 * * */public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {String line = in.nextLine();String line1 = in.nextLine();String line2 = in.nextLine();//去程Boolean b1 = line.contains(line1);Boolean b2 = false;Boolean b3 = false;if (b1 == true) {String line3 = line.substring(line.indexOf(line1) + line1.length());b2 = line3.contains(line2);if (b2 == true) {b3 = true;}}//返程StringBuilder sb1 = new StringBuilder(line);sb1.reverse();//输入的旗帜颜色逆序排列Boolean c1 = sb1.toString().contains(line1);Boolean c2 = false;Boolean c3 = false;if (c1 == true) {String line3 = sb1.toString().substring(sb1.toString().indexOf(line1) + line1.length());c2 = line3.contains(line2);if (c2 == true) {c3 = true;}}if (b3 == true && c3 == true) {System.out.println("both");} else if (b3 == true && c3 == false) {System.out.println("forward");} else if (b3 == false && c3 == true) {System.out.println("backward");} else {System.out.println("invalid");}}}}
0 0
- 2017年360公司校招Java研发笔试编程第一题
- 2017年网易校招笔试编程题第一题
- 2017年携程旅游校招Java研发笔试编程题(3个)
- 360公司2017春招笔试编程题
- 美团2015校招研发笔试题--编程
- 阿里2018校招客户端研发笔试之编程题
- 2017年爱奇艺校招Java研发笔试编程题(2个)
- 迅雷2017校招Java笔试题第一题
- 百度2017校招java研发在线笔试
- 2017百度校招笔试第一题
- 2017年搜狗校招Java研发笔试编程题
- 2016年阿里校招笔试题(JAVA研发岗)
- 2016年腾讯校招笔试题(研发岗)
- 百度校招研发工程师笔试题
- 2017校招全国统一模拟笔试第一场-编程题(8题)-牛客网(java)
- 2016校招腾讯研发岗笔试题(第一题)
- 2016 360校招笔试编程题
- 2015年360公司校招编程题
- HDU 3555
- Redis系列----(二)redis中的数据结构类型
- Proteus 7.8 与 Keil 4 实现联调
- 几款开发、画原型图、前端框架分享
- 微信支付之获得openid(主动获得和被动获得)
- 2017年360公司校招Java研发笔试编程第一题
- 伽瑪校正
- 4385: [POI2015]Wilcze doły (单调队列)
- CodeForces Round #370 (div.2) 即 Codeforces 712
- 2016大连网络赛Sparse Graph
- Android Studio导入Library
- HDU5873-Football Games
- iOS10适配
- 给自己一段自我堕落的时间,现在要唤醒自己的洪荒之力!