সীমান্তহীন টেবিল


16

এই চ্যালেঞ্জটিতে আপনি একটি কার্তেসিয়ান বিমানে বর্ণমালা থেকে চিঠি লিখতে চলেছেন এবং ফলাফলটিকে একটি পাঠ্য হিসাবে আউটপুট দেবেন।

আপনার ইনপুটটিতে 3 টি প্যারামিটার সহ তালিকার একটি তালিকা থাকবে:

  • এক্স সমন্বয়
  • Y সমন্বয়
  • দড়ি

কিভাবে?

আমরা জানি যে কার্টেসিয়ান বিমানটিতে 2 টি অক্ষ (এক্স,ওয়াই) এবং 4 টি চতুর্ভুজ রয়েছে যেখানে (এক্স,ওয়াই) স্থানাঙ্কগুলির চিহ্নগুলি , , এবং । উদাহরণ স্বরূপ(+ +,+ +)(-,+ +)(-,-)(+ +,-)

নিম্নলিখিত 3 দ্বারা 3 কার্টেসিয়ান বিমান হিসাবে ম্যাট্রিক্স বিবেচনা করুন

(-1,1)(0,1)(1,1)(-1,0)(0,0)(1,0)(-1,-1)(0,-1)(1,-1)

আমাদের যদি ইনপুটে দেওয়া হয় তবে [[-1,1,L],[0,1,F]]আমাদের ম্যাট্রিক্সের মতো কিছু মিলবে

এলএফ(1,1)(-1,0)(0,0)(1,0)(-1,-1)(0,-1)(1,-1)

এবং চূড়ান্ত আউটপুট LF

সঠিক আউটপুট পেতে আমাদের এখানে কিছু পয়েন্ট অনুসরণ করতে হবে:

  • যখন একটি এক্স, ওয়াই কর্ড পুনরাবৃত্তি হয়, আপনার স্ট্রিংগুলি সংলগ্ন করতে হবে। উদাহরণ: ধরে নিন (-1,1) স্ট্রিংটি Fস্থাপন করা হয়েছে এবং আপনাকে aএকই পয়েন্টে স্ট্রিংটি স্থাপন করতে হবে । আপনি উভয় স্ট্রিংকে ফলস্বরূপ প্রকাশ করেছেন Faএবং এটিই মান হবে (-1,1)।
  • আপনার আউটপুট ম্যাট্রিক্সের সাথে সামঞ্জস্যপূর্ণ হওয়া দরকার। উদাহরণ হিসাবে এটি আপনার চূড়ান্ত ফলাফল হিসাবে কল্পনা করুন:

এমএকটিRআমিআমিগুলি(1,0)তোমার দর্শন লগ করাটি(0,-1)(1,-1)

আপনি আউটপুট অবশ্যই

Ma  rie 
i   s       
cute

কেন?

আপনি এটি একটি টেবিল হিসাবে দেখতে পারেন যেখানে কলামগুলি এক্স-অক্ষ এবং সারিগুলি y- অক্ষের মান।

        Column 1    |   Column 2    |   Column 3
        ----------------------------------------
Row 1   |  "Ma"     |      "r"      |     "ie" 
Row 2   |  "i"      |      "s"      |
Row 3   |  "cute"   |               |

সমস্ত কলামের মানগুলির দৈর্ঘ্য একই হবে

        Column 1    |   Column 2    |   Column 3
        ----------------------------------------
Row 1   |  "Ma  "   |      "r"      |     "ie" 
Row 2   |  "i   "   |      "s"      |
Row 3   |  "cute"   |               |

Finnaly আমরা ফলাফল আউটপুট

Ma  rie
i   s
cute

পরীক্ষার কেস

Input
------------
[[3, 3, "c"]
[4, 1, "un"]
[5, 3, "e"]
[4, 3, "od"]
[4, 2, "lf"]
[1, 2, "go"]
[2, 1, "i"]
[2, 1, "s f"]]

Output
--------------
      code
go     lf 
  is f un

Input
--------------
[[0, 0, 's'],
[-1,1, 'M'],
[0, 1, 'r'],
[-1,1, 'a'],
[1, 1, 'i'],
[-1, 0, 'i'],
[1, 1, 'e'],
[-1,- 1, 'c'],
[-1,- 1, 'u'],
[-1, -1, 'te']]

Output.
----------------
Ma  rie
i   s
cute

মন্তব্য

  • এটি হওয়ার কথা
  • আপনি একটি একক তালিকায় স্থানাঙ্কগুলি মোড়ানো করতে পারেন যেমন [[3, 3], "c"]
  • আপনি যে কোনও যুক্তিসঙ্গত বিন্যাসে ইনপুট নিতে পারেন
  • আপনি অনুমান করতে পারেন যে কেবল ইনপুটটিতে কোনও নম্বর বা খালি জায়গা থাকবে না। উদাহরণস্বরূপ এমন কিছু হতে পারে a aতবে কখনই 1বা " "বা 1aবা or1 1


1
@ কেভিনিক্রুজসেন আপনি ধরে নিতে পারেন যে কেবল ইনপুটটিতে কোনও সংখ্যা বা খালি জায়গা থাকবে না। সেখানে ভালো কিছু হতে পারে a aকিন্তু কখনো 1বা `` বা 1aবা1 1
লুইস ফিলিপ de Jesus Munoz

1
ধন্যবাদ লুইসেলিপডিজেসাস মুনোজ ধন্যবাদ। ওহ, এবং আরও একটি প্রশ্ন আমি নিশ্চিত যে আরও বেশি লোকেরা এখানে জানতে চাইবে: ম্যারি কে? ; পি
কেভিন ক্রুইজসেন

2
@ কেভিন ক্রুজসেন আমার ক্রাশ 5 বছর আগে: সি
লুইস

1
আমরা কি নামযুক্ত টিউপসগুলির তালিকা হিসাবে ইনপুট নিতে পারি? এরকম কিছু : (int a,int b,string c)?
অজ্ঞতার

উত্তর:


8

জাভাস্ক্রিপ্ট (ES8),  186 180  179 বাইট

1 শাটগি ধন্যবাদ 1 বাইট সংরক্ষণ করা

a=>(g=d=>a.some(([x,y,s])=>(w[x+=d]>(l=((r=o[y=d-y]=o[y]||[])[x]=[r[x]]+s).length)||(w[x]=l),x|y)<0,w=[o=[]])?g(-~d):o.map(r=>w.map((w,x)=>(r[x]||'').padEnd(w)).join``).join`
`)``

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

জেএসে নেতিবাচক সূচকগুলি (বা তাদের অভাব)

একটি অ্যারে দেওয়া A[], জেএসের মতো এমন কিছু করা একেবারে আইনী A[-1] = 5। তবে এটি অ্যারেতে মানটি সংরক্ষণ করবে না save পরিবর্তে, এটা পরোক্ষভাবে একটি স্ট্রিং (এই নেতিবাচক সূচক নিগৃহীত হবে "-1") এবং সংশ্লিষ্ট সেট সম্পত্তি মধ্যে পার্শ্ববর্তী বস্তুর অ্যারের।

খারাপ খবরটি হ'ল বৈশিষ্ট্যগুলি যেমন পদ্ধতিগুলির সাথে পুনরাবৃত্ত হয় না map():

a = [];
a[1] = 3;
a[-1] = 5;
a.map((v, i) => console.log(v + ' is stored at index ' + i))

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

উপরের কোডটি কেবল প্রদর্শিত হবে 3 is stored at index 1

সম্ভাব্য কাজটি হ'ল:

a = [];
a[1] = 3;
a[-1] = 5;
Object.keys(a).map(k => console.log(a[k] + ' is stored with key ' + k))

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

কিন্তু:

  • এটি খুব গল্ফ-বান্ধব নয়।
  • কীগুলি সংখ্যা অনুসারে বাছাই করা হয় না।

আমরা এখানে কি করি

এক্সY

এক্সY

পরিবর্তে আমরা যা করি তা এখানে:

  • আমরা দিয়ে শুরু করি=0
  • এক্সএক্স+ +Y-Y
  • এক্স<0Y<0+ +1

আমার মনে হয় আপনি ঘোষণা করে একটি বাইট সংরক্ষণ করতে পারবেন oমধ্যে w: w=[o=[]]
শেগি

@ শেগি আমি মনে করি এটি সত্যই নিরাপদ। ধন্যবাদ। :)
আর্নল্ড


5

এপিএল (ডায়ালগ ইউনিকোড) , 39 বাইট এসবিসিএস

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

{⊃,/↑¨↓⌽m⊣m[c],←⍵⊣m←(⊃⌈/c1+⍺-⌊/⍺)⍴⊂''}

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

{} "ডিএফএন"; বাম (স্থানাঙ্ক) এবং অধিকার (স্ট্রিং) আর্গুমেন্ট এবং :

⊂'' বন্ধ খালি স্ট্রিং, সুতরাং একটি অ্যারের পূরণ হিসাবে ব্যবহার করুন

(... )⍴ cyclically r eshape নিম্নলিখিত মাত্রার একটি অ্যারের মধ্যে:

  ⌊/⍺ স্থানাঙ্কগুলির প্রতিটি অক্ষের সাথে সর্বনিম্ন মান

  ⍺- সমস্ত স্থানাঙ্ক থেকে যে বিয়োগ

  1+ এটি একটিতে যুক্ত করুন (যেহেতু আমরা অন্তর্ভুক্তিক পরিসরটি চাই)

  c← সংরক্ষণ c(জন্য oordinates)

  ⌈/ তাদের প্রতিটি অক্ষ বরাবর সর্বোচ্চ মান

   মাত্রা হিসাবে ব্যবহার করতে প্যাক প্যাক

m← সংরক্ষণ m(জন্য মি atrix)

⍵⊣ স্ট্রিংগুলির পক্ষে এটি বাতিল করুন

m[c],←mস্থানাঙ্কে  এগুলি যুক্ত করুনc

m⊣ এগুলি সংশোধিতের পক্ষে বাতিল করুন m

 আয়না

 স্ট্রিংয়ের তালিকার তালিকায় বিভক্ত করুন

↑¨ স্ট্রিংগুলির প্রতিটি তালিকা একটি অক্ষর ম্যাট্রিক্সের সাথে মিশ্রন করুন, স্পেস সহ প্যাডিং করুন

,/ অনুভূমিক সংক্ষিপ্তকরণ দ্বারা হ্রাস

 আনপ্যাক (যেহেতু হ্রাস 1 থেকে 0 র‌্যাঙ্ক হ্রাস করে)


* যদি আন্তঃ বোনা স্থানাঙ্ক এবং স্ট্রিংগুলির একক যুক্তি গ্রহণের প্রয়োজন হয় তবে এটি 5 বাইট দীর্ঘ হবে।


4

05AB1E , 45 44 বাইট

WsàŸãεUõIvyнXQiyθ«]IZsß->ôεíDéθgjí}øRJʒðKĀ}»

অভ্যন্তরীণ তালিকা হিসাবে ইনপুট-স্থানাঙ্কগুলি নেয়।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Wsà           # Get the minimum and maximum of the (implicit) input-list
   Ÿ          # Create a list in the range [min, max]
    ã         # Create each possible pair by taking the cartesian product with itself
ε             # Map each coordinate to:
 U            #  Pop and store the coordinate in variable `X`
 õ            #  Push an empty string ""
  Iv          #  Loop `y` over the input-items:
    yн        #   Get the coordinates of item `y`
      XQi     #   If it's equal to variable `X`:
         yθ   #    Get the string of item `y`
           «  #    Concat it to the (non-)empty string
]             # Close the if-statement, loop, and map
 IZsß         # Get the maximum and minimum of the input-list
     -        # Subtract them from each other
      >       # And increase it by 1
       ô      # Split the list into parts of this size
ε             # Map each part to:
 í            #  Reverse each inner string
  Déθg        #  Get the length of the longest inner string
      j       #  Prepend spaces to each item up to that length
       í      #  And reverse every item back again
              #  (so the spaces are trailing instead of leading)
            # After the map: zip/transpose; swapping rows/columns
  R           # Reverse the entire list
   J          # Join each inner list together to a single string
ʒðKĀ}         # Remove all strings consisting only of spaces
     »        # Join the strings by newlines (and output implicitly)

3

কাঠকয়লা , 60 বাইট

≔Eθ§ι¹η≔Eθ§ι⁰ζF…·⌊ζ⌈ζ«≔E…·⌊η⌈η⭆θ⎇∧⁼ι§μ⁰⁼κ§μ¹§μ²ωε⮌εM⌈EεLκ±Lε

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

≔Eθ§ι¹η≔Eθ§ι⁰ζ

ইনপুট থেকে স্থানাঙ্কগুলি বের করুন।

F…·⌊ζ⌈ζ«

এক্স-স্থানাঙ্কের উপর লুপ করুন।

≔E…·⌊η⌈η⭆θ⎇∧⁼ι§μ⁰⁼κ§μ¹§μ²ωε

ওয়াই-স্থানাঙ্কের উপর লুপ করুন, প্রদত্ত স্থানাঙ্কগুলিতে সমস্ত স্ট্রিংগুলি বের করে এবং একত্রীকরণ করতে পারেন।

⮌ε

কাঠের কোঅর্ডিনেট সিস্টেমের তুলনায় y- স্থানাঙ্কগুলি বিপরীত হওয়ায় বিপরীত ক্রমে স্ট্রিংগুলি মুদ্রণ করুন।

M⌈EεLκ±Lε

পরবর্তী কলামের শুরুতে সরান।


3

পার্ল 5 -p00 -MList::Util=max, 148 বাইট

s/(\S+) (\S+) (.*)
/$a{$1}=max$a{$1},length($h{$2}{$1}.=$3);''/ge;for$y(sort{$b-$a}keys%h){map{printf"%-$a{$_}s",$h{$y}{$_}}sort{$a-$b}keys%a;say""}

Tio

কিভাবে

  • s/(\S+) (\S+) (.*) /... ;''/ge;, প্রতিস্থাপনের পতাকাগুলি /gলুপ /eইওল, প্রতিস্থাপন খালি সাফ করার লাইন ইনপুট / ডিফল্ট ভেরিয়েবলের মূল্যায়ন করে
  • $a{$1}=max$a{$1},length($h{$2}{$1}.=$3), মানচিত্রের% h মানচিত্রটিকে অটোভিভিফাই করে যার প্রথম স্তরের কীগুলি yদ্বিতীয় স্তরের কী এবং মানটির সাথে একত্রে xস্ট্রিং $3দেয়, দৈর্ঘ্য পান এবং একটি দ্বিতীয় মানচিত্র% একটি অটোভিভিফাই করে যা এর কীগুলি xএবং কলামের উপরে সর্বোচ্চ দৈর্ঘ্যের মান দেয় ( x)
  • for$y(sort{$b-$a}keys%h){... ;say""}, একটি সাইন ইনডেক্সের $yজন্য %hবাছাই করা সংখ্যার বিপরীতে কীগুলিতে say""একটি নতুন লাইন মুদ্রণ করতে হবে
  • map{... }sort{$a-$b}keys%a, $_কীগুলিতে কলাম ইনডেক্সের জন্য % a সংখ্যাগতভাবে বাছাই করা
  • printf"%-$a{$_}s",$h{$y}{$_}, মুদ্রণ স্ট্রিং কলাম প্রস্থ সঙ্গে বাম দিকে প্রান্তিক করা

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