Text Alignment-HackerRank Solution
In Python, a string of text can be aligned left, right and center.
.ljust(width)
This method returns a left aligned string of length width.
>>> width = 20
>>> print 'HackerRank'.ljust(width,'-')
HackerRank----------
.center(width)
This method returns a centered string of length width.
>>> width = 20
>>> print 'HackerRank'.center(width,'-')
-----HackerRank-----
.rjust(width)
This method returns a right aligned string of length width.
>>> width = 20
>>> print 'HackerRank'.rjust(width,'-')
----------HackerRank
Task
You are given a partial code that is used for generating the HackerRank Logo of variable thickness.
Your task is to replace the blank (______) with rjust, ljust or center.
Input Format
A single line containing the thickness value for the logo.
Constraints
The thickness must be an odd number.
Output Format
Output the desired logo.
Sample Input
5
#Replace all ______ with rjust, ljust or center.
thickness = int(input()) #This must be an odd number
# print(thickness)
c = 'H'
# Top Cone prints the H based on H input
for i in range(thickness):
print((c * i).rjust(thickness - 1) + c + (c * i).ljust(thickness - 1))
# Top Pillars prints the lines below the top cone
for i in range(thickness + 1):
print((c * thickness).center(thickness * 2) +
(c * thickness).center(thickness * 6))
# Middle Belt prints the continuous row of H
for i in range((thickness + 1) // 2):
print((c * thickness * 5).center(thickness * 6))
# Bottom Pillars prints the lines above the bottom cone
for i in range(thickness + 1):
print((c * thickness).center(thickness * 2) +
(c * thickness).center(thickness * 6))
# Bottom Cone prints the cone on the right hand side
for i in range(thickness):
print(((c * (thickness - i - 1)).rjust(thickness) + c +
(c * (thickness - i - 1)).ljust(thickness)).rjust(thickness * 6))

0 comments:
Post a Comment
Feel free to share your thoughts and suggestion...