পাইথনে কোডিং করার সময়, কখনও কখনও আপনি কোনও ফাংশনের মধ্যে একটি বহুমাত্রিক স্ট্রিং চান, যেমন
def f():
s = """\
Line 1
Line 2
Line 3"""
(ব্যাকস্ল্যাশ হল একটি শীর্ষস্থানীয় নিউলাইন সরানো)
আপনি যদি প্রিন্ট করার চেষ্টা করেন s
তবে আপনি পাবেন
Line 1
Line 2
Line 3
আমরা আদৌ যা চাই তা নয়! সেখানে অনেক বেশি হোয়াইটস্পেস রয়েছে!
চ্যালেঞ্জ
কেবলমাত্র বর্ণানুক্রমিক অক্ষর, স্পেস এবং নিউলাইনগুলিকে সমন্বিত একাধিক স্ট্রিং দেওয়া হয়েছে, প্রতিটি লাইনের শুরু থেকে সমস্ত সাধারণ স্পেস সরিয়ে ফেলুন। প্রতিটি লাইনে কমপক্ষে একটি অ-স্পেস অক্ষর থাকার গ্যারান্টিযুক্ত এবং এতে কোনও পিছনের স্থান থাকবে না। আউটপুটটির বহিরাগত সাদা স্থান থাকতে পারে না, এটি পুরো আউটপুটের আগে বা পরে বা স্বতন্ত্র লাইনের (একক alচ্ছিক ট্রেইলিং নিউলাইন বাদে)।
ইনপুটটি STDIN বা ফাংশন আর্গুমেন্টের মাধ্যমে হতে পারে এবং আউটপুট STDOUT বা ফাংশন রিটার্ন মানের মাধ্যমে হতে পারে। আপনি এমন কোনও বিল্টিন ব্যবহার করতে পারবেন না যা মাল্টলাইন স্ট্রিংগুলি উত্সর্গ করার জন্য তৈরি করা হয়েছে বা এই সঠিক কাজটি সম্পাদন করতে পারে, যেমন পাইথনের textwrap.dedent
।
এটি কোড-গল্ফ , সুতরাং কয়েকটি বাইটে সমাধান জিততে পারে। স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।
পরীক্ষার মামলা
"a" -> "a"
" abc" -> "abc"
" abc\n def\n ghi" -> " abc\ndef\n ghi"
" a\n b\n c" -> "a\nb\nc"
" a\n b\n c\nd" -> " a\n b\n c\nd"
" a b\n c d\n e f" -> "a b\n c d\n e f"
উদাহরণস্বরূপ, শেষ পরীক্ষার কেসটি
a b
c d
e f
নেতৃস্থানীয় স্থানগুলি সরিয়ে নেওয়ার পরে এবং দেখতে এটি দেখতে হবে:
a b
c d
e f