In this HackerEarth Roy and Symmetric Logos problem solution, Roy likes Symmetric Logos.

How to check whether a logo is symmetric?
Align the center of logo with the origin of Cartesian plane. Now if the colored pixels of the logo are symmetric about both X-axis and Y-axis, then the logo is symmetric.

You are given a binary matrix of size N x N which represents the pixels of a logo.
1 indicates that the pixel is colored and 0 indicates no color.

For instance: Take a 5x5 matrix as follows:

01110
01010
10001
01010
01110


HackerEarth Roy and Symmetric Logos problem solution


HackerEarth Roy and Symmetric Logos problem solution.

def check_about_x_axis(n, matrix):
for i in xrange(n):
j = n-i-1
for p in xrange(n):
if matrix[i][p] != matrix[j][p]:
return 0
return 1

def check_about_y_axis(n, matrix):
for i in xrange(n):
j = n-i-1
for p in xrange(n):
if matrix[p][i] != matrix[p][j]:
return 0
return 1

def roy_and_symmetric_logos():
t = input()
for tt in xrange(t):
n = input()
matrix = []
for i in xrange(n):
s = raw_input()
tmp = list(s)
matrix.append(tmp)
if check_about_y_axis(n,matrix) and check_about_x_axis(n,matrix):
print "YES"
else:
print "NO"
roy_and_symmetric_logos()