ম্যাট্রিক্স জিগস পাজল টুকরা


10

(এলোমেলোভাবে https://codegolf.meta.stackexchange.com/a/17272/42963 দ্বারা অনুপ্রাণিত )

অঙ্কগুলির একটি আয়তক্ষেত্রযুক্ত ম্যাট্রিক্স দেওয়া (অর্থাত্‍ 0 - 9), ম্যাট্রিক্সের "টুকরা" আউটপুট করুন যেন অঙ্কগুলি একত্রে সংযুক্ত থাকে, অঙ্কগুলি দ্বারা ক্রমবর্ধমান ক্রমে piece টুকরাগুলি কেবলমাত্র orthongonally সংযোগের জন্য গ্যারান্টিযুক্ত - কোনও টুকরোটি তির্যকভাবে সংযুক্ত হবে না। কেবলমাত্র সর্বোচ্চ 10 টুকরা থাকবে (অর্থাত, কোনও 3টুকরো একই ম্যাট্রিক্সে দু'বার প্রদর্শিত হবে না)।

উদাহরণস্বরূপ, ম্যাট্রিক্স দেওয়া হয়েছে

0 1 1 1
0 0 1 2
3 3 2 2

নিম্নলিখিত টুকরা, এবং একটি উদাহরণ আউটপুট:

0
0 0

1 1 1
  1

  2
2 2

3 3

টুকরাগুলির আকারটি ধরে রাখার জন্য ব্যবধানটি গুরুত্বপূর্ণ, তবে টুকরোগুলি অভ্যন্তরীণ ব্যবধানের প্রয়োজন হয় না। টুকরোগুলি সেগুলি কোনওভাবেই একটি সামঞ্জস্যপূর্ণ পদ্ধতিতে পৃথক করা উচিত (উদাহরণস্বরূপ, টুকরোগুলির মধ্যে একটি নতুন লাইন, এটি নিশ্চিত করে যে প্রতিটি পৃথক অক্ষর ইত্যাদি)। অতিরিক্তভাবে, এক্সটেনারেস হোয়াইটস্পেস (উদাহরণস্বরূপ, নতুন লাইনগুলি বা শীর্ষস্থানীয় কলামগুলি অনুসরণ করা) অনুমোদিত নয়। উদাহরণস্বরূপ, নিম্নলিখিতগুলিও বৈধ হবে:

0
00
111
 1
 2
22
33

অথবা

#
##

###
 #

 #
##

##

তবে নিম্নলিখিতটি হবে না (গুলিগুলির পিছনে পিছনের স্থানগুলি নোট করুন 0):

0      
0 0    

আবর্তন বা প্রতিবিম্বও অনুমোদিত নয়। উদাহরণস্বরূপ, আউটপুটটিং

 1
111

উপরের ম্যাট্রিক্সটিও অবৈধ।

ম্যাট্রিক্স টুকরাগুলির গর্ত থাকতে পারে, বা কেবল একটি একক উপাদান হতে পারে:

0 0 0 1
0 2 0 1
0 0 0 3

অথবা, টুকরাটি পুরো ম্যাট্রিক্স হতে পারে:

0 0 0
0 0 0

এখানে একটি বৃহত্তর, আরও জটিল পরীক্ষার কেস:

1 1 1 1 1 2 2
3 4 4 4 2 2 2
5 5 4 4 2 0 0
5 6 6 6 6 7 7
5 6 8 8 6 6 7
9 6 6 6 7 7 7

এবং একটি উদাহরণ আউটপুট:

00

11111

 22
222
2

3

444
 44

55
5
5

6666
6  66
666

 77
  7
777

88

9

বিধি এবং I / O

  • ইনপুট এবং আউটপুট যে কোনও সুবিধাজনক পদ্ধতি দ্বারা দেওয়া যেতে পারে ।
  • আপনি এটি STDOUT এ মুদ্রণ করতে পারেন বা কোনও ফাংশন ফলাফল হিসাবে এটি ফিরিয়ে দিতে পারেন।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য।
  • আকৃতিটি ধরে রাখার জন্য শীর্ষস্থানীয় শ্বেতস্পেসের (উদাহরণস্বরূপ, "টি" আকারটি 1উদাহরণের মধ্যে) প্রয়োজন, টুকরোগুলি আলাদা করার জন্য সামঞ্জস্যপূর্ণ হোয়াইটস্পেস প্রয়োজন, এবং শেষে একক পেছনের নতুন লাইনের অনুমতি দেওয়া হয়েছে, তবে অন্য কোনও শ্বেত স্পেসের অনুমতি নেই।
  • আপনি নিরাপদে ধরে নিতে পারেন যে টুকরোগুলি সংখ্যার 0সাথে সংখ্যায়িত হয়েছে N, যার অর্থ (উদাহরণস্বরূপ) 3ছয়-পিস ম্যাট্রিক্সে এড়ানো যাবে না।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

আউটপুট আসলে টুকরাগুলির একটি তালিকা হতে পারে? অথবা I / O স্ট্রিং দিয়ে নয় বরং ম্যাট্রিক্স এবং পূর্ণসংখ্যার ( -1একটি ফাঁকা স্থান প্রতিনিধিত্ব করে এমন একটি স্থান বা সম্ভব হলে কোনও উপাদানগুলির অনুপস্থিতি) দিয়ে সম্পন্ন হবে না?
এরিক আউটগলফার

যদি ইনপুটটি 1-ভিত্তিক হয় (জিরো ধারণ করে না) এবং আউটপুট 0ফিলার মান হিসাবে ব্যবহার করে তবে তা গ্রহণযোগ্য ? সুতরাং প্রতিটি টুকরোটি ম্যাট্রিক্সে নির্ধারিত বাকী মানগুলির সাথে আউটপুট হবে0
লুইস মেন্ডো

আমার আগের প্রশ্নের তুলনায় স্বতন্ত্র: অন্য কোনও শ্বেতপথের অনুমতি নেই : এমনকি সমস্ত লাইনের সমান দৈর্ঘ্য তৈরি করতে স্পেসও পিছনে নেই ?
লুইস মেন্ডো

@ এরিকথ আউটগলফার একটি উপাদান উপস্থিতি ঠিক হবে, যেহেতু এটি কেবল "টুকরা" নিজেই আউটপুট করে। -1কিছুই না / সাদা স্থানের পরিবর্তে প্রতিটি টুকরো বা অন্য কোনও মান সহ পুরো ম্যাট্রিক্স আউটপুট করা ঠিক হবে না, যদিও।
অ্যাডমবর্কবার্ক

@ অ্যাডমবর্কবার্ক ওহ, তাহলে ' 'সেই ক্ষেত্রে ( ) স্থানটি ব্যবহার করা উচিত ?
এরিক আউটগলফার

উত্তর:


2

05 এ বি 1 ই , 20 19 বাইট

ZƒNQ2Fζʒà}}ε0Ü}0ð:,

@ মিস্টার এক্সকোডারকে -1 বাইট ধন্যবাদ ।

নিউলাইন প্রতি টুকরো টুকরো টুকরো ( 1এবং স্থান অক্ষরের সাথে " ") আউটপুট দেয় ।

অনলাইনে এটিকে পরখ করে বা সব পরীক্ষার বিষয় যাচাই বা সব পরীক্ষার বিষয় প্রিটি-প্রিন্ট

ব্যাখ্যা:

Z              # Get the maximum digit of the (implicit) matrix-input (implicitly flattens)
 ƒ             # Loop in the range [0, max]:
  NQ           #  Check for each digit in the (implicit) matrix if it's equal to the index
    2F    }    #  Inner loop two times:
      ζ        #   Zip/transpose; swapping rows/columns
       ʒ }     #   Filter the inner lists by:
        à      #    Get the max of the list
               #  (so all rows/columns containing only 0s are removed)
  ε  }         #  Map the remaining rows:
   0Ü          #   Remove all trailing 0s
  0ð:          #  Then replace any remaining 0 with a space " "
     ,         #  And output the piece-matrix with a trailing newline

2

হাস্কেল, 133 132 129 বাইট

f x=[until(any(>"!"))(tail<$>)m|m<-[[until((>'!').last)init r|r<-[[last$' ':[s|s==n]|s<-z]|z<-x],any(>'!')r]|n<-['0'..'9']],m>[]]

ম্যাট্রিক্সকে স্ট্রিংয়ের তালিকা হিসাবে নিয়ে যায় এবং স্ট্রিংগুলির তালিকার একটি তালিকা প্রদান করে।

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

                                    -- example matrix: ["0111","0012","3322"] 
                                    --
[          |n<-[0..9]]              -- for each digit 'n' from '0' .. '9'
  [  |z<-x]                         --   for each line 'z' of the input matrix 'x'
   [      |s<-z]                    --     for each digit 's' of line 'z'
      last$' ':[s|s==n]             --       take 's' if 's'=='n', else a space
                                    --       now we have a list of 10 matrices where
                                    --       each matrix contains only the
                                    --       corresponding digit 'n' at it's original
                                    --       position and spaces for all other digits
                                    --       -> [["0   ","00  ","    "],[" 111","  1 ","    "],["    ","   2","  22"],["    ","    ","33  "],["    ","    ","    "],["    ","    ","    "],["    ","    ","    "],["    ","    ","    "],["    ","    ","    "],["    ","    ","    "]]
   [     |r<-[    ],any(>'!')r]     --     loop through rows 'r' and keep those with
                                    --     at least one non-space element
    until((>'!').last)init r        --     and remove trailing spaces
                                    --     -> [["0","00"],[" 111","  1"],["   2","  22"],["33"],[],[],[],[],[],[]]
   [     |m<-[   ],m>[]]            --   loop through matrices 'm' and keep only
                                    --   non-empty
    until(any(>"!"))(tail<$>)m      --   and remove common leading spaces
                                    --   -> [["0","00"],["111"," 1"],[" 2","22"],["33"]]

2

জেলি , 18 বাইট

ẎQṢ=€ẸƇZ$⁺œr€ɗ€0o⁶

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

টুকরাগুলির একটি তালিকা ফেরত দেয়, যেখানে 1কোনও অংশের একটি অংশ উপস্থাপন করে এবং ' 'প্যাডিং করছে। ট্রেলিং ' 'গুলি সরানো হয়েছে।


ẎQ=€করা উচিত, যদিও আমাদের আরোহী ক্রমের টুকরোগুলি দরকার, তাই 9Ż=€(যদি না "আমরা" অস্তিত্বহীন টুকরো "অবশ্যই না অন্তর্ভুক্ত ẎQṢ=€)
জোনাথন অ্যালান

@ জোনাথান অ্যালান বিষয়টি স্থির করেছেন, যদিও আমি নিশ্চিত 9Ż=€যে কাজ করবে না (আমি মনে করি "বহিরাগত শ্বেতস্থান [...] অনুমোদিত নয়" পাশাপাশি অ্যারেগুলিতেও প্রসারিত, এজন্য আমি ছাঁটাই করছি))।
এরিক আউটগলফার

হ্যাঁ, এটা বোঝা যায়।
জোনাথন অ্যালান

2

পাইথন 3 , 271 209 206 183 176 172 191 বাইট

lambda t:[[[*"".join(' #'[i==d]for i in r).rstrip()]for r in[w[min(r.index(d)for r in t if d in r):max(len(R)-R[::-1].index(d)for R in t if d in R)]for w in t if d in w]]for d in{*sum(t,[])}]

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

সম্পাদনা করুন: কিছু জোনাথন এবং -5 @ জোনাথন ফ্রেঞ্চকে ধন্যবাদ ।

সম্পাদনা করুন: -3 -26 আবার @ জোনাথন ফ্রেঞ্চকে ধন্যবাদ ।

সম্পাদনা: -7 আবার @ জোনাথন ফ্রেঞ্চকে ধন্যবাদ ।

সম্পাদনা: +১৯: @ নিমির দ্বারা উল্লিখিত হিসাবে আগে আউটপুটটির ভুল ফর্ম্যাট ছিল।


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

Input =  [[0, 1, 1, 1],
          [0, 0, 1, 2],
          [3, 3, 2, 2]]

আউটপুট ম্যাট্রিসির তালিকা:

Output = [[['#'],
           ['#', '#']],
          [['#', '#', '#'],
           [' ', '#']],
          [[' ', '#'],
           ['#', '#']],
          [['#', '#']]],

Ungolfed:

O = ' '
X = '#'

def digits(t):
    return {d for r in t for d in r}

def rows_with_digit(table, digit):
    return [row for row in table if digit in row]

def table_with_digit(table, digit):
    subtable = rows_with_digit(table, digit)
    left_most_column = min([row.index(digit) for row in subtable])
    right_most_column = max([len(row) - row[::-1].index(digit) for row in subtable])
    return [row[left_most_column:right_most_column] for row in subtable]

def format_table(table, digit):
    return [[X if i==digit else O for i in row] for row in table]

def f(table):
    D = digits(table)
    R = []
    for d in D:
        digit_table = table_with_digit(table, d)
        R.append(format_table(digit_table, d))    
    return R


2

পাইথন 2 , 173 172 165 বাইট

s=input()
for i in sorted(set(sum(s,[]))):R=[''.join([' ',i][c==i]for c in r)for r in s if i in r];print'\n'.join(t[min(r.find(i)for r in R):t.rfind(i)+1]for t in R)

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

নিম থেকে পর্যবেক্ষণ থেকে -15 বাইট ।

প্রোগ্রাম আকারে, ইনপুট হিসাবে একক অক্ষরের তালিকার তালিকা গ্রহণ করে; তাদের অক্ষর ব্যবহার করে টুকরোগুলি মুদ্রণ করে আউটপুটগুলি।


@ অ্যাডমবার্কবার্ক - ঠিক আছে, সেই মানদণ্ডটি মিস করেছেন। এখনই স্থির।
চ্যাস ব্রাউন

2

সি # (.নেট কোর) , 258 , 238 বাইট

লিনকিউ ছাড়াই।

সম্পাদনা: অজ্ঞতার প্রতিমূর্তি আরও ভাল বর্ণনাকে নির্দেশ করছে! টয় টাই

p=>{int j=0,o=0,l=0,x=p.GetLength(1),d=p.Length;while(j<d){int t=j/x,u=j++%x,z=p[t,u];o=z>o?z:o;l=z<l?z:l;}var s="";for(var m=l;m<=o;m++){j=0;while(j<d){int t=j/x,u=j++%x;s+=(p[t,u]==m?p[t,u]+"":" ")+(u==x-1?"\n":"");}s+="\n";}return s;};

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



1

পাইথন 2 , 291 বাইট

import re
t=input()
a,b=t.split(),{c for c in t if' '<c}
for c in sorted((b,a)[int(max(a))==len(a)],key=int):s=re.sub(r'[^%s\s]'%c,' ',t).split('\n');print"\n".join(''.join(l[i]for i in sorted({i for l in s for i,j in enumerate(l)if j in c})if i<len(l)).rstrip()for l in s if l.strip())+'\n'

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

ইনপুট হিসাবে একটি উদ্ধৃতি-সীমাবদ্ধ স্টিং আশা করে। কোডটির একটি আধা-হাস্যকর শতাংশ অ-স্থান-বিচ্ছিন্ন / অ-স্থান-প্যাডযুক্ত ইনপুট পরিচালনা করতে উত্সর্গীকৃত।

অন-গল্ফযুক্ত ব্যাখ্যা:

# built-in python regex handling.
import re
# get argument from STDIN
t=input()
# get elements which are whitespace separated, and all distinct non-whitespace characters
a,b=set(t.split()),{c for c in t if' '<c}
                # choose whichever set has the appropriate number of values based on its max element
                # for non-space separated inputs, this prevents values like '333' for 4-piece sets
                (b,a)[int(max(a))==len(a)]
# get elements in order by their integer value
# this will force the items to print in order, since sets are unordered
for c in sorted(..........................,key=int):
      # using regex substitute, replace any instance that DOESN'T match the current value or a whitespace with a space
      re.sub(r'[^%s\s]'%c,' ',t)
    # split replaced string into lines on line breaks
    s=...........................split('\n')
                # for each line in replaced input
                for l in s
                           # get the index and value of each item in line
                           for i,j in enumerate(l)
             # get distinct indexes which have a value that appears in the current piece
             {i ..................................if j in c}
    # get ordered list of distinct indexes
    a=sorted(...............................................)
                                                               # for each line in the replaced input
                                                               # only return values where line has non-whitespace values
                                                               for l in s if l.strip()
                           # get the value for each index that has a non-space value on other lines
                           # as long as that index exists (for non-space-padded inputs)
                           # this ensures that the spaces between values, if any, are removed
                           # there may still be trailing spaces
                           l[i]for i in a if i<len(l)
                   # join characters back into one string, and remove trailing whitespace
                   ''.join(..........................).rstrip()
    # join the lines back together with line breaks, and terminate with an extra line break
    # print output to screen
    print"\n".join(...................................................................)+'\n'

আপনাকে যদি ইনপুট ফর্ম্যাটটি নির্দিষ্ট করার অনুমতি দেয় (উদাহরণস্বরূপ, তালিকাগুলির তালিকা হিসাবে বা স্পেস-বিভাজিত অনুচ্ছেদ হিসাবে) যদি এটি আপনার কোডকে গল্ফিয়ার করে তোলে।
অ্যাডমবর্কবার্ক

1

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

$
¶9
.-10{T`9d`d`.$
*;(s`(\d)(?!.*\1$)
 
 +¶
¶
G`\d
/^\d|^$/m^+m`^.

.$
$&¶

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

$
¶9

ইনপুটটিতে একটি অঙ্ক যুক্ত করুন। এটি লুপের কাউন্টার উপস্থাপন করে। নিউলাইনটি পূর্ববর্তী হোয়াইটস্পেস অপসারণকে সহজ করে।

.-10{

ডিফল্ট আউটপুট আটকান এবং ঠিক 10 বার পুনরাবৃত্তি করুন।

T`9d`d`.$

লুপ অঙ্কটি অগ্রিম করুন।

*;(

স্ক্রিপ্টের বাকী ফলাফল আউটপুট করে তবে বাফারটি পুনরুদ্ধার করুন।

s`(\d)(?!.*\1$)
 

স্থানগুলির সাথে লুপ অঙ্কের সাথে মেলে না এমন সমস্ত অঙ্কগুলি প্রতিস্থাপন করুন। (কারণ এটি লুপহ্যাড ব্যবহার করে এবং এই মুহুর্তে সামনে দেখার মতো কিছুই নেই এটি লুপ ডিজিটকেও প্রতিস্থাপন করে))

 +¶
¶

সমস্ত পেছনের সাদা স্থান সরান।

G`\d

সমস্ত ফাঁকা লাইন সরান।

/^\d|^$/m^+

যতক্ষণ না অঙ্কের সাথে কোনও লাইন না শুরু হয় ততক্ষণ পুনরাবৃত্তি করুন ...

m`^.

... প্রতিটি লাইনে প্রথম অক্ষর মুছুন।

.$
$&¶

যদি কিছু বাকী থাকে তবে প্রতিটি আকারকে পরের থেকে আলাদা করতে একটি নতুন লাইন যুক্ত করুন। (অনুপস্থিত অঙ্কগুলির জন্য বিপথগামী নিউলাইনগুলি এড়ানোর জন্য এটি করা হয়))


এটি যদি আপনার কোডকে আরও খাটো করে তোলে তবে কোনও "অনুপস্থিত অঙ্ক" হওয়ার নিশ্চয়তা নেই।
অ্যাডমবর্কবার্ক

@ অ্যাডমবার্কবার্ক আমি মনে করি না এটি সাহায্য করবে। যেটি আরও বেশি সাহায্য করবে তা সংখ্যার ক্রমে টুকরো টুকরো না করানো। এটা কি অনুমোদিত?
নিল

না, এটি চ্যালেঞ্জের অর্ধেক, অন্যথায় এটি খুব সহজ হতে চাই। ;-)
অ্যাডমর্কবার্ক

1

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

WS⊞υιFχ«≔Φυ№κIιθ¿θ«UTFθ«Fκ«¿⁼λIιλ→»M±Lκ¹»D⎚

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

WS⊞υι

একটি অ্যারে ইনপুট পড়ুন। (আমি যদি কোনও কুৎসিত ইনপুট ফর্ম্যাট ব্যবহার করি তবে এটি সরানো যেতে পারে))

Fχ«

10 সংখ্যার উপরে লুপ করুন।

≔Φυ№κIιθ

সারিগুলি পান যাতে এই সংখ্যাগুলি থাকে।

¿θ«

অঙ্কটি বাস্তবে পাওয়া গেছে কিনা তা পরীক্ষা করুন (উত্সাহী নিউলাইনগুলি আউটপুট আটকানো রোধ করতে)।

UT

স্বয়ংক্রিয় প্যাডিং বন্ধ করুন।

Fθ«

পাওয়া সারিগুলির উপরে লুপ করুন।

Fκ«

প্রতিটি কলামে লুপ ...

¿⁼λIιλ→»

... যদি বর্তমান ইনপুট চরিত্রটি বর্তমান লুপ অঙ্কের সমান হয় তবে এটি মুদ্রণ করুন অন্যথায় কার্সারটি ডানদিকে সরান।

M±Lκ¹»

পরবর্তী সারির শুরুতে সরান। এর মতো চলন কমান্ড ব্যবহার করে চারকোল উভয় পক্ষের আউটপুট ট্রিম করতে দেয়।

D⎚

পরের অঙ্কের জন্য প্রস্তুত ক্যানভাস ডাম্প এবং সাফ করুন। এটি বিভিন্ন অঙ্কগুলিকে বিভিন্ন পরিমাণে ছাঁটাই করতে দেয়।

আমি একটি প্রোগ্রাম্যাটিক পদ্ধতির চেষ্টা করেছি তবে এটির ওজন 47 বাইটে হয়েছে যদিও Equalsভেক্টরাইজ করার সময় এটি সংক্ষিপ্ত সময়ের জন্য 43 বাইটও হত:

UTWS⊞υιFχ«≔ΦEυEκ⁼μIιΣκθEθ⭆✂κ⌊Eθ⌕μ¹⁻Lκ⌕⮌κ¹¦¹⎇μι 

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

UT

স্বয়ংক্রিয় প্যাডিং বন্ধ করুন।

WS⊞υι

একটি অ্যারে ইনপুট পড়ুন।

Fχ«

10 সংখ্যার উপরে লুপ করুন।

≔ΦEυEκ⁼μIιΣκθ

প্রতিটি অক্ষরকে ইনপুটটির সাথে তুলনা করুন এবং একটি বুলিয়ান অ্যারে তৈরি করুন, তবে তারপরে কোনও মিল নেই সারিগুলিকে ফিল্টার আউট করুন।

Eθ⭆✂κ⌊Eθ⌕μ¹⁻Lκ⌕⮌κ¹¦¹⎇μι 

অবশিষ্ট সারিগুলির উপরে লুপ করুন এবং যে কোনও সারির প্রথম ম্যাচ থেকে বর্তমান সারির সর্বশেষতম ম্যাচে স্লাইস করুন, তারপরে বুলিয়ান অ্যারেটিকে অঙ্ক বা স্পেসে ম্যাপিং করুন, যা পরে স্পষ্টভাবে স্ট্রিংগুলির অ্যারে হিসাবে মুদ্রিত হয়।


1

ওল্ফ্রাম ভাষা 101 বাইট

এটি সম্পাদন করার জন্য আরও অনেক কার্যকর উপায় থাকতে হবে।

(g=#;Column[Table[Grid@Map[Replace[#,Thread[Complement[u=Union@Flatten@g,{n}]->""]]&/@#&,g],{n,u}]])&

1

পার্ল 5, 97 বাইট

$x=$_;for$i(0..9){$_=$x;y/ //d;s/(?!$i)./ /g;s/ *$//gm;s/^
//gm;s/^ //gm until/^(?! )/m;$\.=$_}}{

Tio

ব্যাখ্যা

-p0777                       # options to read whole intput and print special var by default

$x=$_;                       # save default var (input) into $x
for$i(0..9){                 # for $i in 0..9
    $_=$x;                   #   restore default var 
    y/ //d;                  #   remove all space char
    s/(?!$i)./ /g;           #   replace all char except $i by a space
    s/ *$//gm;               #   remove trailing space
    s/^\n//gm;               #   remove empty lines
    s/^ //gm until/^(?! )/m; #   remove leading space until there is no more
    $\.=$_                   #   append default var to output record separator
}
}{                           # trick with -p to output only reacord separator

1

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

বেনামে ট্যাসিট প্রিফিক্স ফাংশন। আর্গুমেন্ট হিসাবে একটি সাংখ্যিক ম্যাট্রিক্স গ্রহণ করে এবং তালিকার স্ট্রিংগুলির একটি তালিকা প্রদান করে। স্ট্রিংগুলির প্রতিটি তালিকা স্থান-বিচ্ছিন্ন 1এস সহ একটি টুকরোকে উপস্থাপন করে । শীর্ষস্থানীয় এবং অভ্যন্তরীণ (তবে পিছনে নয়) স্থানগুলি স্পেস।

⊂{' +$'R''↓⍕' '@~{⍉⍵⌿⍨∨/⍵}⍣2⊢⍺=⍵}¨∪∘,

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

∪∘, রেভেলের অনন্য উপাদান (সমতল) ম্যাট্রিক্স

⊂{ তাদের প্রত্যেকের জন্য , সম্পূর্ণ ম্যাট্রিক্সের সাথে নিম্নলিখিত ফাংশনটিকে কল করুন :

⍺=⍵ সেই অংশটির নম্বরটি ম্যাট্রিক্সে কোথায় রয়েছে তা নির্দেশ করুন

 ফলন যে ( 2থেকে পৃথক )

{}⍣2 নিম্নলিখিত ফাংশনটি দু'বার প্রয়োগ করুন ( এটি বুলিয়ান ম্যাট্রিক্স):

  ∨/ কমপক্ষে একটি দিয়ে সারিগুলির জন্য মুখোশ 1(লিট। সারি অনুসারে বা হ্রাস)

  ⍵⌿⍨ সারিগুলি ফিল্টার করতে এটি ব্যবহার করুন

   ট্রান্সপোজ (তাই আমরা কলামগুলিতে এটিও করি, তারপরে আবার স্থানান্তর করুন)

' '@~ স্থানগুলিতে স্পেস দিয়ে প্রতিস্থাপন করুন যেখানে নয় (যেমন যেখানে 0)

 অক্ষর ম্যাট্রিক্স হিসাবে ফর্ম্যাট

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

' +$'⎕R'' পিসিআরই কিছুই ছাড়াই ট্রেলিং স্পেস (কোনও লাইন-এন্ডের পরে থাকা স্পেসের সংখ্যা) প্রতিস্থাপন করে


1

জাপট , 29 বাইট

AÆ®®¥X ÑÃÃÕfx Õfx ®¬r0S x1
fl

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

কঠোর আউটপুট বিন্যাস মেনে চলার জন্য আপডেট করা হয়েছে।

প্রতিটি টুকরো টুকরো টুকরো তালিকা হিসাবে আউটপুটগুলি ফিলার চরিত্র হিসাবে 2 ব্যবহার করে লাইনগুলির একটি তালিকা দ্বারা প্রতিনিধিত্ব করে।

ব্যাখ্যা:

AÆ                            #For the numbers 0-9:
  ®®    ÃÃ                    # Map over each digit in the input:
    ¥X                        #  True if it equals the current number, false otherwise
       Ñ                      #  Multiply by 2 to turn the bool into a number
          Õfx                 # Remove columns that are all 0
              Õfx             # Remove rows that are all 0
                  ®           # For each remaining row:
                   ¬          #  Turn it into a string
                    r0S       #  Replace "0" with " "
                        x1    #  Trim spaces from the right
fl                            #Remove unused pieces

আপনি falseঅভ্যন্তরীণ তালিকা থেকে সমস্ত পিছনে সরাতে ভুলে গেছেন । এখানে একটি পেস্টবিন যাতে আউটপুট হওয়ার কথা তা আরও ভালভাবে ব্যাখ্যা করতে পারি। স্পষ্ট করতে ওপিকে নির্দ্বিধায় বলুন, তবে যতদূর আমি চ্যালেঞ্জ থেকে বুঝতে পারি, সমস্ত পেছনের শ্বেত স্পেসগুলি আউটপুটে মোটেও হওয়া উচিত নয়।
কেভিন ক্রুইজসেন

0

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

lambda s:[dedent(re.sub(" *$","",re.sub(f"[^{c}\\n]"," ",s),0,8)).strip("\n")for c in sorted(*s)[1:]]
from textwrap import*
import re

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

একটি নতুন লাইন-বিভক্ত স্ট্রিং নেয়, নিউলাইন-বিভক্ত স্ট্রিংগুলির একটি তালিকা প্রদান করে। textwrap.dedentশীর্ষস্থানীয় স্থান থেকে মুক্তি পেতে ব্যবহার করে।


@ অ্যাডমবার্কবার্ক এই নিয়মটিকে অবহেলা করেছেন, স্থির হয়েছে
ব্ল্যাক আউল কাই

0

জেলি , 19 বাইট

ŒĠµŒṬZSƇ$⁺ị⁾# œr€⁶)

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

একটি মোনাডিক লিঙ্ক ম্যাট্রিক্সকে ইনপুট হিসাবে গ্রহণ করে এবং প্রতি টুকরো করে একটি রগড তালিকার একটি তালিকা ফেরত দেয়। পাদলেখ এটি সুন্দরভাবে প্রদর্শন করে তবে আমি মনে করি যে এটি ছাড়াই আউটপুট প্রশ্নের নিয়মের সাথে সামঞ্জস্যপূর্ণ।

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