-
Notifications
You must be signed in to change notification settings - Fork 2
/
CNFtoCNFdict.py
26 lines (24 loc) · 893 Bytes
/
CNFtoCNFdict.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# A -> a | BC;
# B -> b;
# C -> C;
# sebuah fungsi yang melakukan translasi dari CNF dari cnf.txt menjadi dictionary of CNF.
# mengembalikan CNF dalam bentuk dictionary
def CNFtoCNFdict():
CNFdict = {}
# baca file
f = open("cnf.txt", "r")
stringCNF = f.read()
listCNF = stringCNF.split("\n")
for element in listCNF:
leftSide,rightSide = element.split("->")
# untuk menghilangkan spasi
leftSide = leftSide.lstrip().rstrip()
listRightSide = rightSide.split(";")[0].split("|")
for eachRightSide in listRightSide:
# untuk menghilangkan spasi dibagian kiri dan kanan
eachRightSide = eachRightSide.lstrip().rstrip()
if eachRightSide in CNFdict:
CNFdict[eachRightSide].append(leftSide)
else:
CNFdict[eachRightSide] = [leftSide]
return CNFdict