Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Seven Segment by rossras
rules = {
1: {'b', 'c'},
2: {'a', 'b', 'd', 'e', 'g'},
3: {'a', 'b', 'c', 'd', 'g'},
4: {'b', 'c', 'f', 'g'},
5: {'a', 'c', 'd', 'f', 'g'},
6: {'a', 'c', 'd', 'e', 'f', 'g'},
7: {'a', 'b', 'c'},
8: {'a', 'b', 'c', 'd', 'e', 'f', 'g'},
9: {'a', 'b', 'c', 'd', 'f', 'g'},
0: {'a', 'b', 'c', 'd', 'e', 'f'}
}
def seven_segment(lit, broken):
ones_lit, ones_broken = (s.intersection('abcdefg') for s in (lit, broken))
tens_lit, tens_broken = (s.intersection('ABCDEFG') for s in (lit, broken))
tens_lit, tens_broken = (set(''.join(s).lower())
for s in (tens_lit, tens_broken))
ones_maybe = ones_lit | ones_broken
tens_maybe = tens_lit | tens_broken
ones = [i for i, rule in rules.items() if ones_lit <= rule <= ones_maybe]
tens = [i for i, rule in rules.items() if tens_lit <= rule <= tens_maybe]
return len(ones)*len(tens)
if __name__ == '__main__':
assert seven_segment({'B', 'C', 'b', 'c'}, {'A'}) == 2, '11, 71'
assert seven_segment({'B', 'C', 'a', 'f', 'g', 'c', 'd'}, {'A', 'G', 'D', 'e'}) == 6, '15, 16, 35, 36, 75, 76'
assert seven_segment({'B', 'C', 'a', 'f', 'g', 'c', 'd'}, {'A', 'G', 'D', 'F', 'b', 'e'}) == 20, '15...98'
print('"Run" is good. How is "Check"?')
Aug. 2, 2018