Description:图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:
{‘O’:{‘A’:2,‘B’:5,‘C’:4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。
Input:第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串
Output:输出仅一行,输出顶点数,边数,边的总长度
Sample Input:
4
{'a':{'b':10,'c':6}}
{'b':{'c':2,'d':7}}
{'c':{'d':10}}
{'d':{}}
Sample Output:
4 5 35
从题中可以看出:
顶点数等于所输入的n;
边数等于字典中数字的个数;
边的总长等于所有数字之和。
n = int(input())
a = []
for i in range(n):
a.append(eval(input()))
j = 0 #记录数字个数
sums = 0 #记录数字之和
def sum(n):
global j
sums = 0 #局部记录每个顶点所对应的数字之和
if isinstance(n, dict):
for i in n.values():
if isinstance(i, dict):
sums += sum(i)
if isinstance(i, int):
sums += i
j += 1
return sums
for i in a:
sums += sum(i)
print(n, j, sums)