পাঠ্যটিকে একটি ব্লকে সারিবদ্ধ করুন


10

কার্য

আপনার কাজটি পুরো প্রোগ্রামটি লেখা, যা প্রদত্ত আকারের একটি ব্লকে প্রদত্ত ইনপুটকে সারিবদ্ধ করবে।

ইনপুট:

40
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

আউটপুট:

Lorem  ipsum dolor sit amet, consectetur
adipiscing  elit,  sed do eiusmod tempor
incididunt  ut  labore  et  dolore magna
aliqua.  Ut  enim  ad minim veniam, quis
nostrud   exercitation  ullamco  laboris
nisi ut aliquip ex ea commodo consequat.
Duis  aute  irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu
fugiat  nulla  pariatur.  Excepteur sint
occaecat cupidatat non proident, sunt in
culpa  qui  officia deserunt mollit anim
id est laborum.
                <-- note the linebreak

ইনপুট বিশদ

  • আপনাকে সম্পূর্ণ সম্পাদনযোগ্য / ব্যাখ্যামূলক প্রোগ্রাম লিখতে হবে।
  • আপনি ধরে নিতে পারেন, ইনপুটটিতে কেবল প্রিন্টযোগ্য ASCII অক্ষর রয়েছে এবং এতে ট্যাব নেই \t
  • ইনপুটটিতে লাইন বিরতি থাকতে পারে। এটা এত সেগুলিও দেওয়া হয় হয়, তাহলে \n, \rঅথবা \r\nউপর নির্ভর করে আপনি কি আশা। যদিও তারা পুরো ইনপুট জুড়ে একত্রিত।
  • ইনপুটটি STDIN, বা কমান্ড লাইন আর্গুমেন্ট হিসাবে দেওয়া যেতে পারে। আপনার প্রয়োজন অনুসারে এটি উভয়ই ব্যবহার করতে পারেন (উদাহরণস্বরূপ, কমান্ড আরোগুলি থেকে ব্লক আকার এবং স্টিডিন হিসাবে ইনপুট)। আপনি তবে আপনার প্রোগ্রামের ইনপুটটির কোনও অংশই হার্ডকোড করতে পারবেন না।
  • আপনি ধরে নিতে পারেন যে ব্লকের আকারটি বৈধ ধনাত্মক ( > 0) নম্বর হিসাবে দেওয়া হয়েছে ।
  • ইনপুটটিতে লাইন বিরতি স্থানের মতোই ব্যবহার করা হয় (এভাবে শব্দ বিভাজক হওয়া)
  • যদি ইনপুটটিতে একাধিক সমবর্তী স্থান থাকে তবে সেগুলি এক হিসাবে বিবেচনা করা হবে।

আউটপুট বিশদ

  • আউটপুট প্রদত্ত আকারের একটি ব্লকে ফর্ম্যাট করতে হবে। বিন্যাস শব্দের মধ্যে ফাঁকা স্থান যোগ করে সম্পন্ন হয়।
  • একটি লাইনের শব্দের মধ্যে শূন্যস্থানের সংখ্যা সেই লাইনের জন্য সমান হতে হবে। যদি এটি সম্ভব না হয়, বাম থেকে শুরু হওয়া শব্দের পরে একে একে অতিরিক্ত স্পেস যুক্ত করতে হবে।
  • শব্দটি যদি প্রদত্ত ব্লকের আকার দীর্ঘতর হয় তবে এটি একক লাইনে একা দাঁড়িয়ে থাকবে (এবং ব্লকের আকারকে ছাড়িয়ে যাবে)।
  • যদি আউটপুটে কেবল একটি শব্দ থাকতে পারে তবে এটি বাম দিকে সংযুক্ত হবে।
  • শব্দের মধ্যে একটি মাত্র স্থান রেখে আউটপুটটির শেষ লাইনটি বাম দিকে সংযুক্ত করতে হবে। আউটপুটটির শেষ লাইনটি শেষ লাইনের বিরতি দিয়ে শেষ করতে হবে।

উত্তর, কিছু সময়ের পরে সংক্ষিপ্ত সংখ্যক বাইট সহ, জিতেছে।
আপনার যদি অতিরিক্ত তথ্যের প্রয়োজন হয় তবে একটি মন্তব্য করুন।

পরীক্ষার মামলা

Input:
10
Lorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor

Output:
Lorem
ipsum
dolor  sit
amet,
consectetur
adipiscing
elit,  sed
do eiusmod
tempor

Input:
20
Lorem     ipsum

dolor  sit amet,

Output:
Lorem   ipsum  dolor
sit amet,

Input:
1
Lorem ipsum dolor sit amet

Output:
Lorem
ipsum
dolor
sit
amet

সম্পর্কিত। (অবশেষে আমার টাইপোগ্রাফি ট্যাগের জন্য দ্বিতীয় চ্যালেঞ্জ যা ইতিমধ্যে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে;;))
মার্টিন ইন্ডার

@ মার্টিনব্যাটনার আমি জানতাম না যে এই জাতীয় ট্যাগটি রয়েছে।
জেরেজেস

@ Vɪʜᴀɴ আপনাকে সম্পূর্ণ সম্পাদনযোগ্য / ব্যাখ্যামূলক প্রোগ্রাম লিখতে হবে।
ডেনিস


@ পিপ্পেরি আকর্ষণীয়, কোনও কারণে এটি আমার অনুসন্ধান দক্ষতা
এড়ায়

উত্তর:



1

রুবি, 179 অক্ষর

n=gets.to_i
s=t=''
$<.read.split.map{|w|if(t+w).size>=n
0while t.size<n&&(1..n).any?{|i|t.sub!(/[^ ]#{' '*i}(?=[^ ])/){|x|x+' '}}
s+=t+?\n
t=w
else
t+=' '+w
t.strip!
end}
puts s,t

পথ অনেক দীর্ঘ ...

আধা-অবরুদ্ধ সংস্করণ:

n = gets.to_i
s = t = ''
$<.read.split.map{|w|
    if (t + w).size >= n
        0 while t.size < n && (1..n).any?{|i|t.sub!(/[^ ]#{' '*i}(?=[^ ])/){|x|x+' '}}
        s += t + ?\n
        t = w
    else
        t += ' ' + w
        t.strip!  # this is only necessary because of the very first word >:(
    end
}
puts s,t


0

রেটিনা , 133 বাইট

\s+

+`((1)*1 )((?<-2>.)*\S|\S+) 
:$3<LF>$1
m+`^(?=.(.)+$[^<TB>]*^(?>(?<-1>1)+)1)((.*):(\S+ +)|(\S+ +)(.*):)
$3$4$5 :$6
+`:|<LF>1+| (?= .*$)
<empty>

<empty>একটি খালি চিহ্ন লাইন প্রতিনিধিত্ব করে। কোডটি চালাতে, প্রতিটি লাইন একটি পৃথক ফাইলে রাখুন, <LF>লাইনফিড অক্ষর (0x0A) এবং <TB>একটি ট্যাব (0x09) দিয়ে প্রতিস্থাপন করুন । আমি যখন গল্ফিং করি তখন আমি একটি ব্যাখ্যা যুক্ত করব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.