Let us see how to print an inverted heart pattern in Python.
Example:
Input: 11
Output:
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
********* ********
******* ******
***** ****
Input: 15
Output:
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
************* ************
*********** **********
********* ********
******* ******
Approach:
- Determine the size of the heart.
- Print an inverted triangle with size number of rows.
- Print the rest of the heart in 4 segments inside another loop.
- Print the white space right-triangle at the beginning.
- Print the first trapezium with stars.
- Print the white space triangle.
- Print the second trapezium with stars.
# determining the size of the heart
size = 15
# printing the inverted triangle
for a in range(0, size):
for b in range(a, size):
print(" ", end = "")
for b in range(1, (a * 2)):
print("*", end = "")
print("")
# printing rest of the heart
for a in range(size, int(size / 2) - 1 , -2):
# printing the white space right-triangle
for b in range(1, size - a, 2):
print(" ", end = "")
# printing the first trapezium
for b in range(1, a + 1):
print("*", end = "")
# printing the white space triangle
for b in range(1, (size - a) + 1):
print(" ", end = "")
# printing the second trapezium
for b in range(1, a):
print("*", end = "")
# new line
print("")
Output:
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
************* ************
*********** **********
********* ********
******* ******
Time complexity: O(S2) for given input size S
Auxiliary Space: O(1)