八皇后 - 结果去重

去重后的结果,虽然显示两个,但是其实是等价的,主要就是对称性。如果继续去重,感觉可以将XY对调再去重。不再做调整了。


def TwinsQuickSort(datalist):
	if len(datalist)<=1:
		return datalist
	pivot=datalist[0]
	left=[];right=[];
	for i in range(len(datalist)):
		if i==0:
			continue;
		else:
			if datalist[i][0]pivot[0]:
					right.append(datalist[i])
				else:
					if datalist[i][1]=maxrow or curPlace[1]>=maxrow):
		return False
	for q in queens:
		if ( curPlace[0]==q[0] or curPlace[1]==q[1] ):
			return False
		if ( (q[1]-q[0])==(curPlace[1]-curPlace[0]) or q[0]+q[1]==curPlace[0]+curPlace[1]):
			return False
	return True



def findNxtQueenPlace(queens,startplace,maxrow):
	isok=False
	i,j=startplace[0],startplace[1]
	while i=MAXROW:	
			result=copy.deepcopy(queens)		 
			solutions.append(result) #Find one solution
			# find next solution
			del queens[len(queens)-1]
			updateLastQueenPlace(queens,MAXROW)

	if len(queens)<=0:
		break 

sortresult=[]
for i in range(len(solutions)):
	sortresult.append(str(TwinsQuickSort(solutions[i])))
	print "Solution ",i,": ",sortresult[i]

print sortresult

removeDup=set(sortresult)
print (list(removeDup))

 

 

八皇后 - 结果去重_第1张图片

八皇后 - 结果去重_第2张图片 

你可能感兴趣的:(python,算法)