本帖最后由 cj4777 于 2013-12-10 19:44 编辑
- test = {8: ',3,4,5,6,7,9,13,15,',
- 9: ',6,7,10',
- 3: ',2,16,21',
- 21: ',8,9,11,14'}
复制代码 以上是一个字典,其中,比如键有 8、9、3、21,test[8]的值有,3,4,5,6,7,9,13,15, test[3]的值有',2,16,21',test[21]的值有',8,9,11,14',写一个函数,要求返回其中循环的值
比如上示代码的循环数据(要求函数的返回值)为:
test[8] = 3
test[3] = 21
test[21] = 8
可以把等号左边的键8、3、21理解成某组领导,等号右边为其直接下属,其中 领导8 的下属是3,领导3的下属是21,领导21的下属是8,
这样三个人就形成了循环,本来领导8应该是最高长官,但是到了最后变成了最低职位的21的下属,所以,写一个函数,返回一些提示,只要找出能够找到这几个循环就可以。
说下我的解决思路,也相当于变相的帮助各位看官理解题意,先遍历test[8],找到第一个值3,然后查找test[3],遍历test[3],第一个值为2,继续找test[2],这时发现没有这个值,就删除test[3]=2,继续遍历test[3]的第二个值16,以此类推,一直到只剩下
test[8] = 3
test[3] = 21
test[21] = 8
然后输出这些值,如果没有这样的循环,就退出。
注意:字典长度未知,而且循环的个数未知,比如,示例中只有三个对应的键/值循环,但是,实际上可能会有四个、五个甚至更多对应键/值的循环。
如果没理解题意我可以补充。
|