Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Set methods usage - intersection, difference, issubset solution in Clear category for Seven Segment by Negamax
#!/usr/bin/python3
def seven_segment(lit_seg, broken_seg):
digits = [
{ 'b', 'c', },
{'a', 'b', 'd', 'e', 'g'},
{'a', 'b', 'c', 'd', 'g'},
{ 'b', 'c', 'f', 'g'},
{'a', 'c', 'd', 'f', 'g'},
{'a', 'c', 'd', 'e', 'f', 'g'},
{'a', 'b', 'c' },
{'a', 'b', 'c', 'd', 'e', 'f', 'g'},
{'a', 'b', 'c', 'd', 'f', 'g'},
{'a', 'b', 'c', 'd', 'e', 'f' },
]
small_ltrs = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}
big_ltrs = {ltr.upper() for ltr in small_ltrs}
def find_variants(letters):
lit = {ltr.lower() for ltr in lit_seg.intersection(letters)}
brkn = {ltr.lower() for ltr in broken_seg.intersection(letters)}
return sum([1 for dgt in digits if lit.issubset(dgt) and dgt.difference(lit).issubset(brkn)])
return find_variants(small_ltrs) * find_variants(big_ltrs)
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"?')
Sept. 22, 2019
Comments: