In this Alphabet Rangoli solution, we need to develop a python program that can read an integer input N. and then we need to print the alphabet rangoli on the output screen of size N.

HackerRank Alphabet Rangoli solution in python


Problem solution in Python 2 programming.

from copy import deepcopy
N = int(raw_input())
row = 2 * (N - 1) + 1
col = (N - 1) * 4 + 1
arr = ['-'] * col
res = []
for _ in xrange(row): res.append(deepcopy(arr))
mr = row / 2
mc = col / 2
for i in xrange(mr + 1):
    ch = ord('a') + i
    for j in xrange(N - i):
        res[mr - i][mc - 2 * j] = chr(ch + j)
        res[mr - i][mc + 2 * j] = chr(ch + j)
        res[mr + i][mc - 2 * j] = chr(ch + j)
        res[mr + i][mc + 2 * j] = chr(ch + j)
for r in res:
    print ''.join(r)


Problem solution in Python 3 programming.

def print_rangoli(size):
    alpha = "abcdefghijklmnopqrstuvwxyz"
    data = [alpha[i] for i in range(n)]
    items = list(range(n))
    items = items[:-1]+items[::-1]
    for i in items:
        temp = data[-(i+1):]
        row = temp[::-1]+temp[1:]
        print("-".join(row).center(n*4-3, "-"))


Problem solution in pypy programming.

import string
def print_rangoli(size):
    alpha = string.ascii_lowercase
    n = size
    L = []
    for i in range(n):
        s = "-".join(alpha[i:n])
        L.append((s[::-1]+s[1:]).center(4*n-3, "-"))
    print('\n'.join(L[:0:-1]+L))


Problem solution in pypy3 programming.

import string
alpha = string.ascii_lowercase

n = int(input())
L = []
for i in range(n):
    s = "-".join(alpha[i:n])
    L.append((s[::-1]+s[1:]).center(4*n-3, "-"))
print('\n'.join(L[:0:-1]+L))