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.
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()
0 Comments