import re
import sys
+def is_number(x):
+ try:
+ _ = float(x)
+ except ValueError:
+ return False
+ return True
+
+def remove_numbers(seq):
+ return [ x for x in seq if not is_number(x)]
+
def remove_duplicates(seq):
- seen = set()
- seen_add = seen.add
- return [ x for x in seq if x not in seen and not seen_add(x)]
+ seen = set()
+ seen_add = seen.add
+ return [ x for x in seq if x not in seen and not seen_add(x)]
def get_operands(s):
- operands = remove_duplicates(sorted(re.findall("[A-z0-9_]+", s)))
- return operands
+ operands = re.findall("[A-z0-9_]+", s)
+ operands = remove_duplicates(operands)
+ operands = remove_numbers(operands)
+ return sorted(operands)
def gen_truth_table(s):
operands = get_operands(s)
def main():
print(gen_truth_table("(A&B&C)|D"))
-
+
if __name__ == '__main__':
- main()
+ main()