专栏首页cwl_Java经典算法题-公交车问题

经典算法题-公交车问题

1.问题描述

问题陈述

	你有线[] cityMap 表现城市的布局。 城市有区段。 cityMap 的元素表示的区段, 'B' 指出一个位置哪里有一个公共汽车站。  'X'指出你的位置。 其他地方将会是 '.'表示. 用一个整形变量  int walkingDistance, 表示你愿意走路去一个公共汽车站的最大的距离。 距离应该水平地被垂直地加上区段的数字计算如区段的数字。


定义

公交站:
BusStops
方法:
countStops
叁数:
串起[], int
回返:
int
方法签字:
int countStops(线[] cityMap, int walkingDistance)
(确定你的方法是公众的)


限制
-
cityMap 将会在 1 和 50种元素之间包含, 包含。在内的
-
cityMap 的每种元素将会在 1 和 50个个性之间包含, 包含。在内的
-
cityMap 的每种元素将会包含个性的相同数字。
-
cityMap 的每种元素的每个个性将会是 'B' , 'X', 或 '.'.
-
在 cityMap 中完全地将会有一个 'X' 个性。
-
walkingDistance 将会是在 1 和 100之间, 包含。在内的
例子
0)


{"...B.",
 ".....",
 "..X.B",
 ".....",
 "B...."}
希望走3步就可以到达的车站
回返: 2//有2个车站能满足要求
你能在顶端到达公共汽车站 (3个单位之远), 或在权利上.(2个单位之远) 那一在较低的左边中是 4个单位之远, 哪一个太远。

1)

{"B.B..",
 ".....",
 "B....",
 ".....",
 "....X"}
希望走8步就可以到达的车站
回返: 3//有3个车站能满足要求

8 的距离能在地图上拿任何地方给我们,因此,我们能到达所有的 3个公共汽车站。

2)
{" BBBBB",
 " BB.BB",
 " B.X.B",
 " BB.BB",
 " BBBBB"}
1

回返:0 //有0个车站能满足要求
许多公共汽车停止, 但是不幸地我们不能够到达任何的他们。

3)

{"B..B..",
 ".B...B",
 "..B...",
 "..B.X.",
 "B.B.B.",
 ".B.B.B"}
3
回返:7 //有7个车站能满足要求

这一份问题陈述是 TopCoder 的独有的和专有财产, 公司任何的未经认可的使用或者没有 TopCoder 的之前的书面同意的这数据的再现, 公司严格地被禁止。 (c)2003, TopCoder ,公司版权所有。

2.代码示例

public class BusStopTest {
	public boolean Test1() {
		BusStops bs=new BusStops();
		String[] map={"...B.",
					  ".....",
					  "..X.B",
					  ".....",
					  "B...."};
		int d=3;
		int result=2;
		return result==bs.countStops(map,d);
	}
	public boolean Test2() {
		BusStops bs=new BusStops();
		String[] map={"B.B..",
					 ".....",
					 "B....",
					 ".....",
					 "....X"};
		int d=8;
		int result=3;
		return result==bs.countStops(map,d);
	}
	public boolean Test3() {
		BusStops bs=new BusStops();
		String[] map={"BBBBB",
					  "BB.BB",
					  "B.X.B",
					  "BB.BB",
					  "BBBBB"};
		int d=1;
		int result=0;
		return result==bs.countStops(map,d);
	}
	public boolean Test4() {
		BusStops bs=new BusStops();
		String[] map={"B..B..",
					  ".B...B",
					  "..B...",
					  "..B.X.",
					  "B.B.B.",
					  ".B.B.B"};
		int d=3;
		int result=7;
		return result==bs.countStops(map,d);
	}
	public static void main(String[] args) {
		
		String[] map={"BBBBB",
					  "BB.BB",
					  "B.X.B",
					  "BB.BB",
					  "BBBBB"};
					  
		System.out.println (map);
		
		BusStopTest bs=new BusStopTest();
		if (bs.Test1()) {
			System.out.println ("Test1 OK");
		}
		if (bs.Test2()) {
			System.out.println ("Test2 OK");
		}
		if (bs.Test3()) {
			System.out.println ("Test3 OK");
		}
		if (bs.Test4()) {
			System.out.println ("Test4 OK");
		}
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式-命令模式

    cwl_java
  • 性能优化-jstack的使用

    有些时候我们需要查看下jvm中的线程执行情况,比如,发现服务器的CPU的负载突然增高了、出现了死锁、死循环等,我们该如何分析呢?

    cwl_java
  • 快速学习-初始SpringCloud

    SpringCloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-cloud/

    cwl_java
  • Java整理篇(一)

    古人曰:做事要总结。对,借着古人这句话,我们总结下这一个星期,一个星期时间不长,但实际上群里积累的知识点挺多的,基本上把java基础的都过了一遍,如输入输出,...

    微笑的小小刀
  • Feign使用Hystrix无效原因及解决方法

    首先,使用spring-cloud搭建微服务的过程大部分是根据网上的教程来的,由于网上教程的时间较早,而spring-cloud更新迭代较快,会造成依赖上的一些...

    ydymz
  • JWT如何在Spring Cloud微服务系统中在服务相互调时传递

    在微服务系统中,为了保证微服务系统的安全,常常使用jwt来鉴权,但是服务内部的相互调用呢。经常有人在微信上问我,我给出一个解决办法,采用Feign的拦截器。 在...

    方志朋
  • 100个Numpy练习【1】

    Numpy是Python做数据分析必须掌握的基础库之一,非常适合刚学习完Numpy基础的同学,完成以下习题可以帮助你更好的掌握这个基础库。

    YingJoy_
  • 100个Numpy练习【1】

    翻译:YingJoy 网址: https://www.yingjoy.cn/ 来源: https://github.com/rougier/numpy-100...

    YingJoy_
  • 程序员如果没有较强的自学能力,建议还是趁早转行

    七月半夏
  • 在linux运行Tensorflow代码所遇到的问题

    1,OSError: Unable to open file (file locking disabled on this file system (use H...

    Dean0731

扫码关注云+社区

领取腾讯云代金券