समस्या विवरण
शब्दों की एक सूची दी गई है, हमें उन्हें एक आयताकार क्षेत्र में लाइन दर लाइन फ्रेम करना है। बेहतर समझ के लिए उदाहरण देखें।
उदाहरण
यदि इनपुट है: ['hello', 'world', 'python', 'programming', 'nice'], तो आउटपुट होगा:
*************** * hello * * world * * python * * programming * * nice * ***************
एल्गोरिदम
- सरणी में सबसे बड़े शब्द की लंबाई
lज्ञात करें - ऊपरी बॉर्डर के लिए
l+4बार स्टार (*) वाली स्ट्रिंगstबनाएं - प्रत्येक शब्द के लिए:
stमें*, शब्द, आवश्यक स्पेस (ताकि सभी लाइनें समान चौड़ाई की हों), और अंत में*जोड़ें
- नीचे का बॉर्डर बनाने के लिए फिर से
l+4स्टार जोड़ें - परिणाम स्ट्रिंग वापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, words):
l = max(len(x) for x in words)
st = '*' * (l + 4) + '\n'
for i in words:
st += '* ' + i + ' ' * (l - len(i) + 1) + '*\n'
return st + '*' * (l + 4)
ob = Solution()
words = ['hello', 'world', 'python', 'programming', 'nice']
print(ob.solve(words))
इनपुट
['hello', 'world', 'python', 'programming', 'nice']
आउटपुट
*************** * hello * * world * * python * * programming * * nice * ***************