问题陈述
你有线[] 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 ,公司版权所有。
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");
}
}
}