打印门垫图案的程序,该图案在Python的中心写有一个字符串
给定行数 R 和列数 C,任务是打印门垫图案,如下例所示。垫子设计中的列数必须是设计中行数的 3 倍。门垫中间应该印有 GeeksforGeeks。垫子的宽度等于图案中的列数。
请注意,字符串“GeeksforGeeks”包含 13 个奇数字符,因此行数必须是奇数才能通过保持对称性正确设计垫子。
例子:
Input: R = 11, C = 33
Output:
---------------|*|---------------
------------|*||*||*|------------
---------|*||*||*||*||*|---------
------|*||*||*||*||*||*||*|------
---|*||*||*||*||*||*||*||*||*|---
----------GeeksforGeeks----------
---|*||*||*||*||*||*||*||*||*|---
------|*||*||*||*||*||*||*|------
---------|*||*||*||*||*|---------
------------|*||*||*|------------
---------------|*|---------------
Input: R = 9, C = 27
Output:
------------|*|------------
---------|*||*||*|---------
------|*||*||*||*||*|------
---|*||*||*||*||*||*||*|---
-------GeeksforGeeks-------
---|*||*||*||*||*||*||*|---
------|*||*||*||*||*|------
---------|*||*||*|---------
------------|*|------------
方法:整个图案可以分为3个不同的部分。第一部分包含具有三角形的图案。第二部分包含一个字符串“GeeksforGeeks”,第三部分包含一个具有倒三角形的模式。通过使用内置的字符串对齐功能,可以轻松打印出具有顶部和倒三角形的图案。
- ljust :此方法返回一个长度为 l 的左对齐字符串。
- center :此方法返回长度为 l 的中心对齐字符串。
- rjust :此方法返回一个长度为 l 的右对齐字符串。
下面是上述方法的实现:
# Python3 implementation of the approach
# Function to print the doormat pattern
def doormatPattern(rows, columns):
width = columns
# Print the pattern having a top triangle
for i in range (0, int (rows / 2)):
pattern = "|*|" * ((2 * i) + 1)
print (pattern.center (width, '-'))
# Print GeeksforGeeks in the center
print ("GeeksforGeeks".center (width, '-'))
# Print the pattern having
# an inverted triangle
i = int (rows / 2)
while i > 0:
pattern = "|*|" * ((2 * i) - 1)
print (pattern.center (width, '-'))
i = i-1
return
# Driver code
rows = 7
columns = rows * 3
doormatPattern(rows, columns)
输出:
---------|*|---------
------|*||*||*|------
---|*||*||*||*||*|---
----GeeksforGeeks----
---|*||*||*||*||*|---
------|*||*||*|------
---------|*|---------