জিপ্পারড অনুচ্ছেদ


21

( এই চ্যালেঞ্জ দ্বারা অনুপ্রাণিত )

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

zippered
paragraph

 z
   i
     p
       p
        gerraepdh
      a
    r
  a
p

নোট কিভাবে paragraph(আর শব্দ) নীচে জিপার ফর্ম, এবং g r a p hঅংশ encapsulates e r e dএর অংশ zippered, এবং z i p pএবং p a r aঅংশ একে অপরের থেকে অফসেট করছে।

ইনপুট

  • যে কোনও সুবিধাজনক বিন্যাসে দুটি এএসসিআইআই স্ট্রিং রয়েছে যার একটি দৈর্ঘ্য এমনকি অন্যটি হ'ল একটি অক্ষর দীর্ঘতর হবে te
  • উভয়ই স্ট্রিংয়ে হোয়াইটস্পেস থাকবে না তবে এতে অন্য কোনও মুদ্রণযোগ্য ASCII মান থাকতে পারে।
  • আপনি উভয় ক্রমে ইনপুট নিতে পারেন। আপনার জমা দেওয়ার ইনপুট অর্ডার দয়া করে লিখুন।

আউটপুট

উপরে বর্ণিত জিপ্পার শব্দগুলির ফলাফলের ASCII শিল্পের উপস্থাপনা, আবার কোনও সুবিধাজনক বিন্যাসে।

বিধি

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

উদাহরণ

ppcg
tests

 p
   p
    sctgs
  e
t

string
strings

 s
   t
     r
      iinnggs
    r
  t
s

আমরা কি ধরে নিতে পারি ইনপুটটিতে সাদা স্থান নেই?
ডিজেএমসিএমহেম

@ ডিজেএমসিএমহেম হ্যাঁ, এটি একটি ন্যায্য ধারণা।
অ্যাডমবর্কবর্ক

1
@Titus one guaranteed to be even in length and the other exactly one character longer. দ্য খাটো স্ট্রিং সবসময় এমনকি
Baldrickk

উত্তর:


7

জাপট , 31 28 বাইট

N®¬£ç iXYm½*Ul
uUo mw
y c ·y

এটি অনলাইন পরীক্ষা! প্রথমে খাটো স্ট্রিং নেয় T

ব্যাখ্যা

N®¬£ç iXYm½*Ul    First line: Set U to the result.
N®                Map each item (there's exactly 2 of them) in the input to
  ¬                 the item split into chars,
   £                with each item X and index Y mapped to
    ç                 the first input filled with spaces,
      iX              with X inserted at index
        Ym½*Ul          min(Y, 0.5 * U.length).
                  At the end each input is an array like
                  ["p    ", " p   ", "  c  ", "  g  "]
                  ["t    ", " e   ", "  s  ", "  t  ", "  s  "]

uUo mw    Second line: Set V to the result (though that's not important).
 Uo       Pop the last item (the array representing the second string) from U.
    m     Map each item by
     w      reversing.
u         Push the result to the beginning of U.
          At the end we have e.g.
          ["    t", "   e ", "  s  ", "  t  ", "  s  "]
          ["p    ", " p   ", "  c  ", "  g  "]

y c ·y    Last line: Output the result of this line.
y         Transpose: map [[A,B,C,...],[a,b,c,...]] to [[A,a],[B,b],[C,c],...].
  c       Flatten into one array. [A,a,B,b,C,c,...]
    ·     Join on newlines. Now we have the output transposed.
     y    Transpose rows with columns.

6

কাঠকয়লা , 33 31 বাইট

→F²«FL諧θκ→¿‹κ÷Lθ²¿ι↑↓»J⁰LθAηθ

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

→F²«

ঘুরে প্রতিটি স্ট্রিং উপর লুপ।

FLθ«

ঘুরিয়ে স্ট্রিংয়ের প্রতিটি অক্ষরের উপর লুপ করুন।

§θκ→

অক্ষরটি মুদ্রণ করুন এবং ডানদিকে একটি অতিরিক্ত স্কোয়ার সরান।

¿‹κ÷Lθ²¿ι↑↓»

স্ট্রিংয়ের প্রথমার্ধের জন্য, যথাযথ হিসাবে কার্সারটিকে নীচে বা উপরে সরান।

J⁰LθAηθ

প্রথম স্ট্রিংটি মুদ্রণের পরে, দ্বিতীয় স্ট্রিংয়ের প্রারম্ভিক বিন্দুতে ঝাঁপুন এবং প্রথম স্ট্রিংটিকে দ্বিতীয়টির সাথে প্রতিস্থাপন করুন, যাতে এটি দ্বিতীয় লুপের জন্য মুদ্রিত হয়। (কোডটি দুটি লুপে চলে তবে দ্বিতীয়বার এটি কোনও অপশন নেই))


4

পাইথ , 35 বাইট

AQj.t.e+*d+lG*<klH*^_1k/h-lGk2b.iHG

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


1
দ্রুত ছিল!
অ্যাডমবর্কবার্ক

@ অ্যাডমবার্কবার্ক আপনি আশা করতে পারেন যে একাধিকবার ঘটবে বিশেষত এই উত্তরদাতার কাছ থেকে।
এরিক আউটগল্ফার

4

জেলি ,  27  26 বাইট

-1 বাইট ধন্যবাদ এরিক দ্য আউটগল্ফারকে (পুনরাবৃত্তি ব্যবহার করুন, ¡প্রতিস্থাপন করতে, যদি ?, এবং অন্য পাস করা শর্তটি ব্যবহার করুন ¹)

JCḂ¡€ṚH
żµL⁶ẋ;ЀFṙ"ÇZṙÇṀ$Y

প্রশ্নে অনুমোদিত হিসাবে একটি সম্পূর্ণ প্রোগ্রাম যা শীর্ষস্থানীয় সাদা-স্থানের সাথে ফলাফল মুদ্রণ করে (বা একটি ডায়াডিক লিঙ্ক অক্ষরের একটি তালিকা ফেরত দেয়)।

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

কিভাবে?

JCḂ¡€ṚH - Link 1, get rotations: list p        e.g.: ["a1","b2","c3","d4","e5","f6","g"]
J       - range of length of p                       [ 1, 2, 3, 4, 5, 6, 7]
    €   - for €ach:
   ¡    -   repeat link:
  Ḃ     - ...# of times: modulo 2                      1  0  1  0  1  0  1
 C      - ...link: complement (1-x)                    0  2 -2  4 -4  6 -6
     Ṛ  - reverse                                    [-6, 6,-4, 4,-2, 2, 0]
      H - halve                                      [-3, 3,-2, 2,-1, 1, 0]

żµL⁶ẋ;ЀFṙ"ÇZṙÇṀ$Y - Main link: longer (odd length); shorter (even length)
                   -                           e.g.: "abcdefg", "123456"
ż                  - zip them together               ["a1","b2","c3","d4","e5","f6","g"]
 µ                 - monadic chain separation, call that p
  L                - length of p                     7
   ⁶               - literal space character         ' '
    ẋ              - repeat                          "       "
        F          - flatten p                       "a1b2c3d4e5f"
      Ѐ           - map with:
     ;             -   concatenation                 ["       a","       1","       b","       2","       c","       3","       d","       4","       e","       5","       f","       6","       g"]
           Ç       - call last link (1) as a monad with argument p
          "        - zip with (no action on left by trailing values of right):
         ṙ         -   rotate left by                ["  a     ","    1   "," b      ","     2  ","c       ","      3 ","       d","       4","       e","       5","       f","       6","       g"]
            Z      - transpose                       ["    c        ","  b          ","a            ","             "," 1           ","   2         ","     3       ","      d4e5f6g"]
                $  - last two links as a monad:
              Ç    -   call last link (1) as a monad with argument p
               Ṁ   -   maximum                       3
             ṙ     - rotate left by                  ["             "," 1           ","   2         ","     3       ","      d4e5f6g","    c        ","  b          ","a            "]
                 Y - join with newlines            '''             \n
                                                       1           \n
                                                         2         \n
                                                           3       \n
                                                            d4e5f6g\n
                                                          c        \n
                                                        b          \n
                                                      a            '''
                   - as full program: implicit print



3

ভি , 47 38 30 27 26 25 বাইট

অবশেষে বর্তমান জেলি উত্তর beat o /

শীর্ষে দীর্ঘ শব্দটি দিয়ে ইনপুট নেয়

ব্যাখ্যা আসছে, গল্ফের আরও অনেক কিছু আছে বলে মনে করবেন না।

òGxplòxãòd|>HÏpd|>GGÏphl

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

ব্যাখ্যা

ò     ò      ' <M-r>ecursively
             |abc
             def
 Gx          ' (G)oto the last line and (x) the first character
             abc
             |ef
            ' <C-O> Go back to the previous location
             |abc
             ef
    p        ' (p)aste the character cut
             a|dbc
             ef
     l       ' move one character right
             ad|bc
             ef

x                  ' (x) the last extraneous character from the previous loop
 ã                 ' <M-c>enter the cursor
  ò                ' <M-r>ecursively
   d|              ' (d)elete to the first co(|)umn
     >H            ' (>) Indent every line from here to (H)ome (first line)
                   ' this leaves the cursor on the first line
       Ïp          ' <M-O>n a newline above this (the first) (p)aste the deleted section
                   ' this leaves the cursor on the last character
         d|        ' (d)elete to the first co(|)umn
           >G      ' (>) Indent every line from here to the end (G)
                   ' unfortunately the cursor stays on the first line
             G     ' (G)oto the last line
              Ïp   ' <M-O>n a newline above this (the last) (p)aste the deleted section
                hl ' move left and then right (break the loop at the end)

2

ভি , 79 বাইট

ãl}dÍ./ &
XòYf D"0Pr -Y;D"0pr +òGï"1pÓ./&ò
}dGÓ/&ò
{jpògJòÓó
|DÇ./d
MÙ"-pBr 

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

নীচে প্রচুর পরিহাস এবং বায়ু-উদ্ধৃতি সহ পড়তে হবে ।

এখানে আমার কোন উত্তর নেই golfing ভাষার যে ভালসংক্ষিপ্ত উত্তর স্ট্রিং-ভিত্তিক ও হওয়া ASCII অত্যাধুনিক চ্যালেঞ্জ

আমি কেন নিজের সাথে এই কাজ চালিয়ে যাব?

Hexdump:

00000000: e36c 167d 64cd 2e2f 2026 0a58 f259 6620  .l.}d../ &.X.Yf 
00000010: 4422 3050 7220 2d59 3b44 2230 7072 202b  D"0Pr -Y;D"0pr +
00000020: f247 ef22 3170 d32e 2f26 f20a 0f16 7d64  .G."1p../&....}d
00000030: 47d3 2f26 f20a 7b6a 70f2 674a f2d3 f30a  G./&..{jp.gJ....
00000040: 7c44 c72e 2f64 0a4d d922 2d70 4272 20    |D../d.M."-pBr 

ভি এর কি "কলামগুলির সাথে সরিয়ে ট্রান্সপোজ সারি" আছে? 'যদি না হয় তবে আপনি এতে বিনিয়োগ করতে চান ...
ইটিএইচ প্রডাকশনগুলি

2

জেলি , 28 বাইট

HĊ©«Rµ®Ḥ_,Ṗ
ZLÇṬ€a"¥"o⁶ZẎz⁶Y

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

উ জেলি আসলে একটি এবং চ্যালেঞ্জের প্রতিযোগিতা করছে! \ ণ /


মূলত প্রতিটি অন্যান্য ভাষায়ও সমস্যা হচ্ছে। যার কথা বললে, কেউ ভি এর সাথে কথা বলতে চান ...
ETH প্রোডাকশনগুলি

ভাল, আমি 27 পরিচালিত করেছি - তবে আপনি সম্ভবত হোয়াইট-স্পেস ভাতার পিছনে / শীর্ষস্থান ব্যবহার করতে পারবেন?
জোনাথন অ্যালান

@ জোনাথান অ্যালান দুঃখের সাথে আমি মনে করি এটি অসম্ভব। ইচ্ছাকে সরিয়ে ফেললে কোনও চলমান স্থান যুক্ত হবে না তবে একটি চলমান স্থান 1। এবং স্পেসগুলির সাথে যা কিছু আছে তা বাদ দেওয়া অক্ষরের লাইন আপ সরিয়ে দেয়। সাধারণত, এই অ্যালগরিদম সূচকগুলি ব্যবহার করে যাতে অক্ষরগুলি একটি কলামে একটি নির্দিষ্ট সূচীতে আসে এবং তারপরে বাকী স্থানগুলি ভরাট হয়ে যায়, তাই আমি মনে করি এটি আর গল্ফ করা যায় না। কমপক্ষে আমি আনন্দিত যে জেলি সিজেমে পলাতক নয়। ;)
এরিক দি আউটগলফার

: | জেলি চারকোলের চেয়ে গল্ফিয়ার
এএসসিআইআই-কেবল

2

05 এ বি 1 ই , 26 23 বাইট

øS2ä`JIθ«¸«vyNúr})2äR˜»

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

ব্যাখ্যা

উদাহরণস্বরূপ ইনপুট = ppcg, tests

ø                           # zip the input strings
                            # STACK: ['tp', 'ep', 'sc', 'tg']
 S                          # split to a list of characters
                            # STACK: ['t', 'p', 'e', 'p', 's', 'c', 't', 'g'
  2ä                        # divide the list into 2 parts
    `                       # push them as separate to stack
                            # STACK: ['t', 'p', 'e', 'p'], ['s', 'c', 't', 'g']
     J                      # join the second part to a single string
      Iθ«                   # append the tail of the second input
         ¸«                 # concatenate the 2 lists
                            # STACK: ['t', 'p', 'e', 'p', 'sctgs']
           v                # for each y,N (element, index) in the list
            yNú             # prepend N spaces to y
               r            # reverse the stack
                })          # end loop and wrap the stack in a list
                            # STACK: ['    sctgs', '  e', 't', ' p', '   p']
                  2ä        # split the list into 2 parts
                    R       # reverse the list
                            # STACK: [[' p', '   p'], ['    sctgs', '  e', 't']]
                     ˜»     # flatten the list and join on newlines

1
আমি এই প্রশ্নের উপর এক সপ্তাহ আগে খুব চেষ্টা করেছি এবং আপনাকে আমাকে যেতে হবে এবং আমাকে মারধর করতে হবে। আমাকে আরও কিছু চেষ্টা করার জন্য +1!
nmjcman101

@ nmjcman101: আমি আশা করি আপনি আরও কিছুটা নামিয়ে আনতে পারেন। কিছু বন্ধুত্বপূর্ণ প্রতিযোগিতা সর্বদা মজাদার :)
এমিগানা

1

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

(l,s)=>{var o="";int i=0,k=s.Length;for(;i<k;)o+=i<k/2?s[i++]+"\n"+"".PadLeft(i):l[i]+""+s[i++];o+=l[i]+"\n";for(i=k/2;i>0;)o+="".PadLeft(--i)+l[i]+"\n";return o;}

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

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


1
বাইট ( l=>s=>) অর্থাত্ সংরক্ষণ করতে কার্চিং ব্যবহার করুন Func<input1, Func<input2, output>>
TheLethalCoder

1

জাভা 8, 216 বাইট

একটি তরকারিযুক্ত ল্যাম্বদা: Stringথেকে একটি ল্যাম্বডা নেয় এবং ফেরত Stringদেয় String। বাইরের ল্যাম্বডায় প্যারামিটারটি সংক্ষিপ্ত স্ট্রিং।

Stringঅ্যারে সিনট্যাক্স সহ সূচী করতে সক্ষম না হওয়াই ... দুর্ভাগ্যজনক।

s->t->{int l=s.length(),i=l/2;String o="",p=o,n="\n";for(;i<l;p+="  ")o=o+t.charAt(i)+s.charAt(i++);o=p+o+t.charAt(i)+n;for(;i-->0;)o=p.substring(l-i--)+s.charAt(i/2)+n+o+p.substring(l-i)+t.charAt(i/2)+n;return o;}

অবহেলিত ল্যাম্বদা

s ->
    t -> {
        int
            l = s.length(),
            i = l / 2
        ;
        String
            o = "",
            p = o,
            n = "\n"
        ;
        for (; i < l; p += "  ")
            o = o + t.charAt(i) + s.charAt(i++);
        o = p + o + t.charAt(i) + n;
        for (; i-- > 0; )
            o =
                p.substring(l-i--)
                + s.charAt(i / 2)
                + n
                + o
                + p.substring(l-i)
                + t.charAt(i / 2)
                + n
            ;
        return o;
    }

ব্যাখ্যা

lসংক্ষিপ্ত ইনপুটটির দৈর্ঘ্য এবং iএটি একটি বহুমুখী সূচী, সংক্ষিপ্ত ইনপুটটির দ্বিতীয়ার্ধের প্রথম অক্ষরটি উল্লেখ করতে আরম্ভ করা। oaccumulates ফলে pপরিণামে প্যাডিং জন্য স্পেস সঞ্চয় করে, এবং nজন্য একটি alias হয় "\n"

প্রথম লুপটি দুটি স্ট্রিংয়ের দ্বিতীয় অংশটি (দীর্ঘতর ইনপুটটির শেষ চরিত্রটি বাদ দিয়ে) এবং বিল্ডগুলি অন্তর্ভুক্ত করে p এবং মাঝের লাইনের জন্য উপযুক্ত পরিমাণে প্যাডিং তৈরি করে।

পরবর্তী লাইন আউটপুট এর মাঝের লাইনটি সম্পূর্ণ করে।

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

দুর্দান্ত জিনিস

13 লাইন ব্যবহৃত হত

o+=t.charAt(i)+""+s.charAt(i++);

কারণ খালি স্ট্রিং ছাড়াই +অক্ষরের মানগুলি একসাথে যুক্ত করা হয়েছে এবং একটি সংখ্যাযুক্ত স্ট্রিং যুক্ত হয়েছে। যৌগিক কার্যবিবরণীটি প্রসারিত করে, প্রথমে সংক্ষিপ্তকরণ oএবং t.charAt(i)মূল্যায়ন করা হয়, যা খালি স্ট্রিংয়ের প্রয়োজন ছাড়াই কাঙ্ক্ষিত ফলাফল দেয়, 2 বাইট সংরক্ষণ করে। এই প্রথম আমি দেখলাম কোনও যৌগের কার্যভারটি এর সম্প্রসারণের থেকে আলাদা আচরণ করে।


0

জাভাস্ক্রিপ্ট (ES6), 140 137 133 বাইট

A=(a,b,c=0)=>a[c/2]?` `[d=`repeat`](c+1)+a[0]+`
`+A(a.slice(1),b.slice(1),c+2)+`
`+` `[d](c)+b[0]:` `[d](c)+[...a].map((e,f)=>e+b[f])

এটি আরও গল্ফ করা যেতে পারে নিশ্চিত


যেমন `<newline>`+` `একীভূত করা যায় না `<newline> `? (আমি জেএসকে জানি না)।
কাজ

@ কাজ: না, কারণ আমরা কেবলমাত্র স্পেসে পুনরাবৃত্তি পদ্ধতিটি প্রয়োগ করি, নিউলাইন + স্পেসটি নয়।
লুক

0

গণিত, 174 বাইট

(a=(c=Characters)@#;b=c@#2;T=Table;Column[Join[T[T["  ",i]<>a[[i]],{i,g=Length@a/2}],{T["  ",g+1]<>Riffle[b[[-g-1;;]],a[[-g;;]]]},Reverse@T[T["  ",i]<>b[[i+1]],{i,0,g-1}]]])&


ইনপুট

["জিপ্পারড", "অনুচ্ছেদ"]




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