1查找里程
(10分)
題目內(nèi)容:
下圖為國內(nèi)主要城市之間的公路里程:

image
你的程序要讀入這樣的一張表,然后,根據(jù)輸入的兩個城市的名稱,給出這兩個城市之間的里程。
注意:任何兩個城市之間的里程都已經(jīng)給出,不需要計(jì)算經(jīng)第三地中轉(zhuǎn)。
輸入格式:
首先,你會讀到若干個城市的名字。每個名字都只是一個英文單詞,中間不含空格或其他符號。當(dāng)讀到名字為“###”(三個#號)時,表示城市名字輸入結(jié)束,###并不是一個城市的名字。如果記讀到的城市名字的數(shù)量為n。
然后,你會讀到nxn的一個整數(shù)矩陣。第一行的每一個數(shù)字,表示上述城市名單中第一個城市依次到另一個城市之間的里程。表中同一個城市之間的里程為0。
最后,你會讀到兩個城市的名字。
輸出格式:
輸出這兩個城市之間的距離。
輸入樣例:
Hagzou Hugzou Jigxng ###
0 1108 708
1108 0 994
708 994 0
Hagzou Jigxng
輸出樣例:
708
時間限制:500ms
內(nèi)存限制:32000kb
我的答案
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList <String> citys = new ArrayList <String>();
Scanner in = new Scanner(System.in);
//讀入城市
while (true) {
String city = in.next();
if (city.equals("###")) {
break;
}
else
{
citys.add(city);
}
}
// 讀入里程表
int cnt = citys.size();
int [][] miles = new int[cnt][cnt];
for (int i=0;i<cnt;i++) {
for (int j=0;j<cnt;j++) {
miles[i][j] = in.nextInt();
}
}
// 返回里程
String c1 = in.next();
String c2 = in.next();
int a = citys.indexOf(c1);
int b = citys.indexOf(c2);
System.out.println(miles[a][b]);
}
}