前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典算法题-公交车问题

经典算法题-公交车问题

作者头像
cwl_java
发布2020-03-19 16:46:10
8000
发布2020-03-19 16:46:10
举报
文章被收录于专栏:cwl_Javacwl_Java

1.问题描述

代码语言:javascript
复制
问题陈述

	你有线[] 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.代码示例

代码语言:javascript
复制
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");
		}
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.问题描述
  • 2.代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档