马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
dictionary是这样子的
seven_segment = {'0': {'a','c','d','e','b','f'},
'1': {'c','b'},
'2': {'a','d','e','b','g'},
'3': {'a','c','d','b','g'},
'4': {'g','c','f','b'},
'5': {'a','c','d','g','f'},
'6': {'a','c','d','e','g','f'},
'7': {'a','c','b'},
'8': {'a','c','d','e','b','g','f'},
'9': {'a','c','d','b','g','f'}}
七段显示器的一部分坏了。所以显示的数字不清晰。你知道是那几段坏了。只能从还没坏的数字里去找可能的数字。
当我input guess_with_damaged(display, state, damaged)时候,会出现可能的数字
就比如a d e g 是好的,但是你知道b f是坏的。剩下的数字是2, 6 ,8.但是因为c没有亮而且你知道c没有坏,所以你可以排除6和8.答案就只剩下2了
>>> guess_damaged(seven_segment, 'adeg', 'bf')
{'2'}
>>> guess_damaged(seven_segment, 'abed', 'cf')
{'0'}
>>> guess_damaged(seven_segment, '', 'abcdefg')
{'4', '5', '1', '8', '7', '6', '3', '0', '2', '9'}
def guess_damaged(display, state, damaged):
result = set()
set1 = set(state)
set2 = set(damaged)
for n, s in display.items():
if set1 <= s and (display['8'] - set1 - set2) & s == set():
result.add(n)
return result
|