본문 바로가기
Programming

k-universal circular string (De bruijn, Eulerian, Hamiltonian graph)

by WelcomeBro 2020. 5. 20.
반응형

 

Here is the code print k-universal circular string(binary)

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
def circularString(lastpoint):
    lastpointZero = lastpoint[1:k] + '0'
    if lastpointZero not in partString:
        partString.append(lastpointZero)
        totalString.append(0)
        circularString(lastpointZero)
    lastpointOne = lastpoint[1:k] + '1'
    if lastpointOne not in partString:
        partString.append(lastpointOne)
        totalString.append(1)
        circularString(lastpointOne)
    if len(partString)==2**k:
        return totalString
    else:
        totalString.pop()
 
print('k : ',end='')
= int(input())
totalString = []
partString = []
partString.append(k*'0')
for i in range(k):
    totalString.append(0)
lastpoint = partString[0]
print('{}-universal circular string : '.format(k),circularString(lastpoint))
cs
반응형