স্থান (গুলি) দ্বারা উল্লম্বভাবে পৃথক করা তিনটি কলাম মুদ্রণ করুন


15

কার্য

  • স্থান দ্বারা পৃথক ইনপুট স্ট্রিং নিন।
  • শব্দগুলি বর্ণমালা অনুসারে বাছাই করুন।
  • এগুলি স্থান (গুলি) দ্বারা পৃথক করে 3 টি কলামে উল্লম্বভাবে মুদ্রণ করুন।

চ্যালেঞ্জ

  • তিনটি কলামের উচ্চতা যথাসময়ে সমানভাবে ওজন হওয়া উচিত।
  • তিনটি কলামই সারিবদ্ধভাবে রেখে দেওয়া উচিত।

এটি , তাই সংক্ষিপ্ততম কোড জয়!

উদাহরণ

যদি ইনপুটটি হয়:

"cat caterpillar pie frog elephant pizza", 

আউটপুটটি হওয়া উচিত:

cat         elephant pie
caterpillar frog     pizza

ইনপুট থাকলে দয়া করে কেস থেকে সাবধান থাকুন:

"a b c d e f g" 

এই হিসাবে মুদ্রিত করা উচিত:

a c e
b d f
    g

# or

a d f
b e g
c

# and not

a d g
b e
c f

2
এছাড়াও, আমি আপনাকে কঠোর আই / ও প্রয়োজনীয়তা সরিয়ে দেওয়ার পরামর্শ দিচ্ছি; এটি হ'ল যে কোনও ফর্মের স্ট্রিংগুলির তালিকা হিসাবে উত্তর দিন (উত্তরদাতা যেমন চান) এবং প্রোগ্রাম হিসাবে বা কোনও ফাংশন হিসাবে তালিকাটি গ্রহণ করে।
হাইপারনিউট্রিনো

এটা আউটপুট গ্রহণযোগ্য এই প্রথম উদাহরণস্বরূপ?
কায়ার্ড কইনিরিংহিংহ

4
@ সতেন্দ্র "অফ-টপিক হিসাবে ধরে রাখুন ..." নিয়ে চিন্তা করবেন না, কখন / যদি প্রশ্নটি যথেষ্ট ভাল হয় তবে তা আবার খোলা হবে। | আপনি স্যান্ডবক্স ব্যবহার বিবেচনা করতে পারেন।
ব্যবহারকারী 202729

3
ভবিষ্যতে স্যান্ডবক্সকে মূল সাইটে পোস্ট করার আগে আপনার চ্যালেঞ্জগুলির বিষয়ে প্রতিক্রিয়া জানাতে দয়া করে বিবেচনা করুন।
মেগো

1
@ সটেন্দ্র নিস প্রথম চ্যালেঞ্জ। সংক্ষিপ্ত ব্যবধানে কলামগুলি যদি একটি একক স্পেস দ্বারা পৃথক করা আবশ্যক, আপনার উচিত state
অ্যাডম

উত্তর:


4

হুশ , 24 17 বাইট

TmoTT' §CȯmLTC3Ow

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি একটি আশ্চর্যজনকভাবে চ্যালেঞ্জ ছিল, যেহেতু বর্তমানে একটি নির্দিষ্ট সংখ্যক অংশে তালিকা ভাঙ্গার জন্য হসকের একটি বিল্টিন নেই।

TmoTT' §CȯmLTC3Ow  Implicit input, say s="bbb a cc ddd e"
                w  Split at spaces: x=["bbb","a","cc","ddd","e"]
             C3    Cut into slices of length 3: [["bbb","a","cc"],["ddd","e"]]
            T      Transpose: [["bbb","ddd"],["a","e"],["cc"]]
         ȯmL       Map length: [2,2,1]
                   These are the correct lengths of the columns.
       §C      O   Sort x and split into these lengths: [["a","bbb"],["cc","ddd"],["e"]]
                   These are the columns of the correct output, without padding.
 mo                For each column,
    T'             transpose and pad with spaces: [["ab"," b"," b"],["cd","cd"," d"],["e"]]
   T               then transpose back: [["a  ","bbb"],["cc ","ddd"],["e"]]
T                  Transpose the whole list: [["a  ","cc ","e"],["bbb","ddd"]]
                   Implicitly join each row by spaces,
                   join the resulting strings by newlines and print.

2

@ ডিএলকাস আসলে এটির a b c d e f gক্ষেত্রেও পরীক্ষা করা হয়েছে এবং আমি অন্যান্য বিস্তৃত পরীক্ষাও করেছি কারণ আমারও প্রথম অনুভূতি হয়েছিল। ওহ, এবং এর অসুবিধাটি অন্তর্নির্মিত G( জি মুক্তি হিসাবে ফর্ম্যাট ) থেকে আসে ।
এরিক আউটগল্ফার

আহ, সেখানে একজন বিল্টিন আছে। (কেন আমি অবাক হই?) এটি অনেক কিছু ব্যাখ্যা করে।
DLosc

2

পাইথন 3 , 148 বাইট

-6 বাইটস ovs ধন্যবাদ।

l=sorted(input().split())
n=-~len(l)//3
f=lambda l:[i.ljust(max(map(len,l)))for i in l+['']]
for i in zip(f(l[:n]),f(l[n:n*2]),f(l[n*2:])):print(*i)

এটি অনলাইন চেষ্টা করুন!

এটি উপর workin '। সবকিছু আমি চেষ্টা করেছি আউটপুট ভারসাম্যহীন করে তোলে ...


1
পাইথন 3 ব্যবহার করে 148 বাইট
ovs

1

গণিত, 115 বাইট

Grid[Transpose@PadRight@TakeList[#,Last@IntegerPartitions[Tr[1^#],3]]&@Sort@StringSplit@#/. 0->"",Alignment->Left]&

এটা চেষ্টা ওল্ফ্রাম স্যান্ডবক্সে

নিম্নলিখিত কোডটি পেস্ট করুন এবং শিফট + এন্টার টিপুন

Grid[Transpose@PadRight@TakeList[#,Last@IntegerPartitions[Tr[1^#],3]]&@Sort@StringSplit@#/. 0->"",Alignment->Left]&["cat caterpillar pie frog elephant pizza"]

1
@ হালওয়ার্ডহ্ম্মেল স্থির করেছেন
J42161217



1

জাভাস্ক্রিপ্ট 181 175 বাইট

f=a=>(a=a.split` `).sort().map(c=>(t[y]=[...t[y]||[],c],M[x]>(l=c.length)?0:M[x]=l,a[++y*3+x]?y:y=x++*0),M=[t=[x=y=0]])&&t.map(x=>x.map((c,y)=>c.padEnd(M[y])).join` `).join`
`

console.log(f("cat caterpillar pie frog elephant pizza"))
console.log("-------------------")
console.log(f("cat caterpillar pie frog frog123123 pizza"))
console.log("-------------------")
console.log(f("a b c d e f g"))
console.log("-------------------")
console.log(f("a b c d e f"))
console.log("-------------------")
console.log(f("a b c d e"))
console.log("-------------------")
console.log(f("a b c d"))

/*
f=a=>(a=a.split` `).sort().map(c=>((t[y] =t[y]||[])[x]=c,M[x]>(l=c.length)?0:M[x]=l,++y*3+x<a.length?0:y=x++*0),M=[t=[x=y=0]])&&t.map(x=>x.map((c,y)=>c.padEnd(M[y])).join` `).join`\n`

f=a=>(a=a.split` `).sort().map(c=>(t[y]=[...t[y]||[],c],M[x]>(l=c.length)?0:M[x]=l,++y*3+x<a.length?0:y=x++*0),M=[t=[x=y=0]])&&t.map(x=>x.map((c,y)=>c.padEnd(M[y])).join` `).join`\n`

*/



0

কাঠকয়লা , 65 64 বাইট

≔⪪θ ηFη«⊞υ⌊η≔⟦⟧ηF⪪θ ¿¬№υκ⊞ηκ»FE³✂υ÷×ιLυ³÷×⊕ιLυ³I1«P⪫ι¶¿ιM⊕⌈EιLκ→

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। 3 টিরও কম শব্দের ক্ষেত্রে যদি আমাকে পরিচালনা করতে না হয় তবে 2 বাইট সংরক্ষণ করুন। আমার সম্ভবত ব্যবহার করা উচিত একটি "বাছাই" বাছাই আছে ... ব্যাখ্যা:

≔⪪θ η

ফাঁকা জায়গায় ইনপুট বিভক্ত করুন।

Fη«⊞υ⌊η≔⟦⟧ηF⪪θ ¿¬№υκ⊞ηκ»

অ্যারে বাছাই করুন।

FE³✂υ÷×ιLυ³÷×⊕ιLυ³I1«

অ্যারের প্রায় তিনটি সমান স্লাইস এর উপরে লুপ করুন। ( I1সত্যিই হওয়া উচিত ¦¹।)

P⪫ι¶

নতুন লাইনের সাথে স্লাইসে যোগ দিন এবং কার্সারটি না সরিয়ে এটিকে মুদ্রণ করুন।

¿ιM⊕⌈EιLκ→

যদি স্লাইসটি খালি না থাকে তবে স্লাইসের দীর্ঘতম শব্দের দৈর্ঘ্যের চেয়ে ডানদিকে সরান।


0

মিনিফাইড জেএস এর 358 বাইট:

function f(b){let d=[,,,],e=b.split(" ").sort(),g=[],h=[];for(var j in e){var k=Math.min(2,Math.floor(j/Math.floor(e.length/3)));d[k]||(d[k]=[],g[k]=e[j].length),d[k].push(e[j]),2==k&&h.push(""),g[k]=Math.max(e[j].length,g[k])}for(var o in g)for(var p=0;p<g[o]+1;p++)for(var q in h)h[q]+=q>=d[o].length||p>=d[o][q].length?" ":d[o][q][p];return h.join("\n")}

function f(b){let d=[,,,],e=b.split(" ").sort(),g=[],h=[];for(var j in e){var k=Math.min(2,Math.floor(j/Math.floor(e.length/3)));d[k]||(d[k]=[],g[k]=e[j].length),d[k].push(e[j]),2==k&&h.push(""),g[k]=Math.max(e[j].length,g[k])}for(var o in g)for(var p=0;p<g[o]+1;p++)for(var q in h)h[q]+=q>=d[o].length||p>=d[o][q].length?" ":d[o][q][p];return h.join("\n")}

console.log(f("cat caterpillar pie frog elephant pizza"));
console.log(f("a b c d e f g"));


@ স্টেফেললেপিক এনপি
জামেস্পগিলবার্ট

0

জিএনইউ সেড , 92 + 1 = 93 বাইট

জন্য +1 বাইট -rপতাকা ।

আমি এটি মোটেও গল্ফ করিনি, তবে এটি আমার প্রত্যাশার চেয়ে অনেক বেশি সহজ হয়েছে।

s/$/ /
s/(\S+ ){1,3}/:&\n/g
:
s/:(\S)/\1:/g
/:\S/!bZ
s/: / &/g
t
:Z
s/: / :/g
t
s/ *:.*$//gm

এটি অনলাইন চেষ্টা করুন!


-1

বোর্ন শেল, 172 বাইট

F=/tmp/t
<$1 tr \  \\n|sort>$F
N=$(wc -w $F|awk '{print $1/3}')
for i in 0 1 2
do
awk 'NR%N==C {print}' N=$N C=$i $F 
done|awk '{printf "%s%s",$1,NR%3?" ":"\n"}'|column -t

প্রচলিতভাবে ফর্ম্যাট করলে এটি আরও পঠনযোগ্য:

#! /bin/sh
F=/tmp/t
<$1 tr \  \\n | sort > $F
N=$(wc -w $F | awk '{print $1/3}')

for i in 0 1 2
do    
    awk -v N=$N -v C=$i 'NR % N == C {print}' $F 
done |
    awk '{printf "%s%s", $1, NR % 3 == 0? "\n" : " " }' | column -t

প্রতি কলামে একবার ইনপুট স্ক্যান করার মূল্যে এটি কোনও অ্যারে ব্যবহার করে না। আরও জটিল একটি এনওকি প্রোগ্রাম 3 টি ফাইল (প্রতিটি এনথ শব্দের জন্য একটি) খুলতে পারে, একটি পাসে ইনপুট প্রক্রিয়াকরণ করে। তারপরে এগুলি একই শেষ লাইনটি ব্যবহার করে সংক্ষিপ্ত করে মুদ্রণ করা যায়।

পরিবর্তনশীল Nকঠোরভাবে প্রয়োজন হয় না, হয়; 4 বাইটের দামের জন্য আমরা আরও 3 বার ইনপুট স্ক্যান করে সংরক্ষণ করি।


2
পিপিসিজিতে আপনাকে স্বাগতম! যেহেতু এটি একটি কোড গল্ফ চ্যালেঞ্জ, তাই বাইটোক্যান্ট হ্রাস করার জন্য আমাদের সমস্ত জবাব দরকার। আপনি যেভাবে উল্লেখ করেছেন ঠিক সেভাবেই আপনি তা করতে পারেন - শ্বেতস্থান সরিয়ে ফেলুন, সংক্ষিপ্তকরণের অনুরোধ ইত্যাদি Once একবার আপনি এটি সম্পন্ন করার পরে, আপনার উত্তরে ব্যবহৃত শিরোনাম এবং বাইটের সংখ্যা দেওয়ার জন্য একটি শিরোনাম যুক্ত করুন। এবং আপনার বর্তমান সংস্করণটিকে নীচে "অসম্পূর্ণ" সমাধান হিসাবে বজায় রাখুন
DLosc

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