便利蜂java面试题_便利蜂4.10笔试题Java(全AC)
package 便利蜂;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner;
public class 高老庄 {
private HashMap map = new HashMap();;
private ArrayList
res;class Address{
private String addressName;
private boolean isReached = false;
private Address east;
private Address west;
private Address north;
private Address south;
public Address(String addressName) {
this.addressName = addressName;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = sc.nextLine().split(",");
高老庄 main = new 高老庄();
main.generateMap();
main.findPath(arr[0], arr[1]);
main.printPath();
}
private void printPath() {
for(int i=1; i
Address cur = res.get(i);
Address pre = res.get(i-1);
if(pre.north == cur) System.out.print("north");
else if(pre.south == cur) System.out.print("south");
else if(pre.west == cur) System.out.print("west");
else if(pre.east == cur) System.out.print("east");
if(i != res.size()-1) System.out.print(",");
}
}
public void findPath(String wukong, String bajie) {
Address start = map.get(wukong);
Address end = map.get(bajie);
ArrayList
path = new ArrayList();path.add(start);
start.isReached = true;
dfs(start, end, path);
}
private void dfs(Address start, Address end, ArrayList
path) {if(start == end) {
if(res == null || path.size()
res = new ArrayList(path);
}
return;
}
int isEnd = 0;
if(start.north != null && !start.north.isReached) {
path.add(start.north);
start.north.isReached = true;
dfs(start.north, end, path);
path.remove(path.size()-1);
start.north.isReached = false;
}
if(start.south != null && !start.south.isReached) {
start.south.isReached = true;
path.add(start.south);
dfs(start.south, end, path);
path.remove(path.size()-1);
start.south.isReached = false;
}
if(start.west != null && !start.west.isReached) {
start.west.isReached = true;
path.add(start.west);
dfs(start.west, end, path);
path.remove(path.size()-1);
start.west.isReached = false;
}
if(start.east != null && !start.east.isReached) {
start.east.isReached = true;
path.add(start.east);
dfs(start.east, end, path);
path.remove(path.size()-1);
start.east.isReached = false;
}
}
public void generateMap() {
Address DAOTIAN1 = new Address("DAOTIAN1");
Address TULU1 = new Address("TULU1");
Address DAOTIAN = new Address("DAOTIAN");
Address TULU = new Address("TULU");
Address CUNKOU = new Address("CUNKOU");
Address NONGSHE = new Address("NONGSHE");
Address TULU2 = new Address("TULU2");
Address JIEDAO = new Address("JIEDAO");
Address TIEPU = new Address("TIEPU");
Address LIUJIABUDIAN = new Address("LIUJIABUDIAN");
Address JIEDAO1 = new Address("JIEDAO1");
Address XIAOJIUGUAN = new Address("XIAOJIUGUAN");
Address ZHANGFANG = new Address("ZHANGFANG");
Address PIANTING = new Address("PIANTING");
Address GUIGE = new Address("GUIGE");
Address YASHI = new Address("YASHI");
Address HUAYUAN = new Address("HUAYUAN");
Address HOUYUAN = new Address("HOUYUAN");
Address ZHENGTING = new Address("ZHENGTING");
Address ZHENGYUAN = new Address("ZHENGYUAN");
Address GAOJIADAYUAN = new Address("GAOJIADAYUAN");
Address JIEDAO2 = new Address("JIEDAO2");
Address PIANFANG = new Address("PIANFANG");
Address FANTING = new Address("FANTING");
Address XIYIFANG = new Address("XIYIFANG");
Address TULU3 = new Address("TULU3");
Address QINGSHILU = new Address("QINGSHILU");
DAOTIAN1.south = TULU1;
TULU1.north = DAOTIAN1;
TULU1.south = DAOTIAN;
DAOTIAN.north = TULU1;
DAOTIAN.south = TULU;
TULU.north = DAOTIAN;
TULU.south = CUNKOU;
CUNKOU.north = TULU;
CUNKOU.east = NONGSHE;
NONGSHE.west = CUNKOU;
TULU1.east = TULU2;
TULU2.west = TULU1;
TULU2.east = JIEDAO;
JIEDAO.west = TULU2;
LIUJIABUDIAN.south = JIEDAO;
JIEDAO.north = LIUJIABUDIAN;
JIEDAO.south = TIEPU;
TIEPU.north = JIEDAO;
JIEDAO.east = JIEDAO1;
JIEDAO1.west = JIEDAO;
JIEDAO1.south = XIAOJIUGUAN;
XIAOJIUGUAN.north = JIEDAO1;
YASHI.south = GUIGE;
GUIGE.north = YASHI;
GUIGE.east = HOUYUAN;
HOUYUAN.west = GUIGE;
PIANTING.east = ZHENGTING;
ZHENGTING.west = PIANTING;
ZHANGFANG.east = ZHENGYUAN;
ZHENGYUAN.west = ZHANGFANG;
JIEDAO1.east = GAOJIADAYUAN;
GAOJIADAYUAN.west = JIEDAO1;
HUAYUAN.south = HOUYUAN;
HOUYUAN.north = HUAYUAN;
HOUYUAN.south = ZHENGTING;
ZHENGTING.north = HOUYUAN;
ZHENGYUAN.north = ZHENGTING;
ZHENGTING.south = ZHENGYUAN;
ZHENGYUAN.south = GAOJIADAYUAN;
GAOJIADAYUAN.north = ZHENGYUAN;
HOUYUAN.east = XIYIFANG;
XIYIFANG.west = HOUYUAN;
ZHENGTING.east = FANTING;
FANTING.west = ZHENGTING;
ZHENGYUAN.east = PIANFANG;
PIANFANG.west = ZHENGYUAN;
GAOJIADAYUAN.east = JIEDAO2;
JIEDAO2.west = GAOJIADAYUAN;
JIEDAO2.east = TULU3;
TULU3.west = JIEDAO2;
TULU3.east = QINGSHILU;
QINGSHILU.west = TULU3;
map.put("DAOTIAN1", DAOTIAN1);
map.put("TULU1", TULU1);
map.put("DAOTIAN", DAOTIAN);
map.put("TULU", TULU);
map.put("CUNKOU", CUNKOU);
map.put("NONGSHE", NONGSHE);
map.put("TULU2", TULU2);
map.put("LIUJIABUDIAN", LIUJIABUDIAN);
map.put("JIEDAO", JIEDAO);
map.put("TIEPU", TIEPU);
map.put("YASHI", YASHI);
map.put("GUIGE", GUIGE);
map.put("PIANTING", PIANTING);
map.put("ZHANGFANG", ZHANGFANG);
map.put("JIEDAO1", JIEDAO1);
map.put("XIAOJIUGUAN", XIAOJIUGUAN);
map.put("HUAYUAN", HUAYUAN);
map.put("HOUYUAN", HOUYUAN);
map.put("ZHENGTING", ZHENGTING);
map.put("ZHENGYUAN", ZHENGYUAN);
map.put("GAOJIADAYUAN", GAOJIADAYUAN);
map.put("XIYIFANG", XIYIFANG);
map.put("FANTING", FANTING);
map.put("PIANFANG", PIANFANG);
map.put("JIEDAO2", JIEDAO2);
map.put("TULU3", TULU3);
map.put("QINGSHILU", QINGSHILU);
}
}
第三题 简单的DFS吧,但是我觉得应该有更好的方法,DFS还是有点太蠢了
便利蜂java面试题_便利蜂4.10笔试题Java(全AC)相关推荐
- php mysql笔试题_初级PHP程序员笔试题
初级PHP程序员笔试题 答题时间:60 – 90分钟 一.基础及程序题(建议使用你擅长的语言:C/C++.PHP.Java) 1.写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数 ...
- python算法笔试面试题_哔哩哔哩笔试题 算法岗 Python
第一题 Counter就可以 from collections import Counter if __name__=='__main__': a = input() b = input() ret ...
- python 数据类笔试题_一道 Python 类的笔试题详解
r = {} class C(object): def __init__(self, a, b): self.a = a self.b = b if b == 'a': orig = super(C, ...
- 赛码浪潮笔试题库软件实施岗位_浪潮集团校园招聘笔试题.doc
浪潮集团校园招聘笔试题.doc 浪潮集团校园招聘笔试题 浪潮集团校园招聘笔试题篇一:浪潮笔试题目 6.2 笔试题目浪潮软件研发B卷(60分钟) 注:对于有C和JAVA选择的试题,考生可以选择其中一种解 ...
- 【机试题】2014大疆嵌入式笔试题(附超详细解答,下篇)
上一篇主要是对<2014大疆嵌入式笔试题>的前一部分进行了解答,本文主要是对接下来的几道题进行解答.想要参考上一篇的点击链接:[机试题]2014大疆嵌入式笔试题(附超详细解答,上篇). 嵌 ...
- php程序员试题,php面试题带答案,php程序员笔试题与答案(一)
php面试题带答案,php程序员笔试题与答案(一) php程序员招聘笔试题: 问题 1. 选择合适的答案填入空白处 PHP 是一种______脚本语言,基于______引擎.PHP 最常被用来开发动态 ...
- java 2017腾讯面试题_腾讯2017刁难面试题,是不是大神就看你会做几题
原标题:腾讯2017刁难面试题,是不是大神就看你会做几题 一.今日头条2017笔试题(决策问题) 现在有两堆石子,小今与小条玩游戏,2个人都足够聪明,两个人规定:每次每人只能从其中一堆中取走1个或2个 ...
- java hashmap用法_备战金九银十:Java核心技术面试题100+,助你搞定面试官
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...
- java框架核心技术_你必须掌握的 21 个 Java 核心技术!(干货)
点击上方"java进阶架构师",选择右上角"置顶公众号" 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘 ...
- java 核型技术_你必须掌握的 21 个 Java 核心技术!(转自Java技术栈)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE ...
最新文章
- TFS命令tf:undo - 强制签入别人签出的文件
- 详解六大伤硬盘软件及解决方法
- Oracle调用接口(OCI)源码剖析(2):执行SQL语句并获取结果
- mysql下 ect p_Linux系统下启动MySQL的命令及相关知识
- linux-查找文件夹
- Google Adwords/SEO关键字策略之Google Webmaster Tool数据方法
- php基础自测卷2,php基础2
- Python使用matplotlib进行可视化时精确控制图例位置
- spring boot jpa SQL语句注意事项
- linux备份文件放在哪里,linux备份文件命令有哪些?
- 当你不能够再拥有,你唯一可以做的,就是令自己不要忘记
- 米勒拉宾素数测试模板
- [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
- Cesium.js解析第一篇 Cartesian3
- 人工智能在计算机领域中的应用
- 淘宝旺旺号转userid 或 uid 接口与方法
- vue数据管理系统项目说明文档
- 冒泡排序,插入排序,选择排序三种算法的优劣
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
- EasyCHM编译的文件在点击节点时出现错误:确保Web地址//ieframe.dll/dnserrordiagoff.htm#正确
热门文章
- java接收时间注解(格式化时间处理)
- linux下flex与bison源码安装,Win flex-bison开发环境配置
- eNSP华为模拟器使用——(5)eNSP模拟路由器
- 抓包工具?我只选Fiddler,全网最全教程!
- JD亿级流量电商平台商品模块业务与技术详解实战
- Java日志门面- JCL和 常用日志门面SLFJ详解
- 人生不能错过的五句话
- java群面_【埃森哲Java面试】一共有三面吧,第一面群面,第二面技术吧。-看准网...
- 黑莓手机今天彻底死了,但黑莓活得很滋润
- linux 计算星期对应的日期,如何计算给定日期的星期数?