উপবৃত্তিকে কীভাবে বহুবচন করবেন?


14

এটা স্পষ্টতই উপবৃত্তাকার।

একটি চ্যাট বার্তা দ্বারা অনুপ্রাণিত ।

আপনার চ্যালেঞ্জ

একটি তালিকা বা স্থান বা কমা-বিভাজিত শব্দের স্ট্রিং দেওয়া হয়েছে, সেগুলি তাদের সাথে উপবৃত্তাকার করুন।

ইলিসিসিসিজেস-আইফির একটি শব্দ:

  1. শব্দ দিয়ে শুরু করুন।
  2. মূল শব্দের প্রথম অক্ষরটি শেষে যুক্ত করুন।
  3. মূল শব্দের শেষ অক্ষরের 2 টি শেষ পর্যন্ত যুক্ত করুন।
  4. মূল শব্দের দ্বিতীয় থেকে শেষ বর্ণটি শেষ পর্যন্ত যুক্ত করুন।
  5. মূল শব্দের প্রথম অক্ষরটি শেষে যুক্ত করুন।
  6. মূল শব্দের শেষ বর্ণটি শেষ পর্যন্ত যুক্ত করুন।
  7. 5 এবং 6 পদক্ষেপ একবার পুনরাবৃত্তি করুন।
  8. তুমি করেছ!

আপনি ধরে নিতে পারেন:

  • ইনপুট শব্দগুলি কেবল বর্ণানুক্রমিক হবে
  • ইনপুট এবং আউটপুট একটি স্থান দ্বারা পৃথক স্ট্রিং বা তালিকা হতে পারে
  • ইনপুটটিতে কেবল শব্দ থাকবে
  • শব্দগুলি কমপক্ষে 2 অক্ষর দীর্ঘ হবে
  • ইনপুটটি রেজেসের সাথে মিলবে /^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i
  • আপনার আলাদা ইনপুট এবং আউটপুট ফর্ম্যাট থাকতে পারে
  • আরো আসছে...

পরীক্ষার কেস:

ellipsis -> ellipsisessieses
goat -> goatgttagtgt
covfefe -> covfefeceefcece
programmer5000 -> programmer5000p000p0p0
up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt
it is golf yo -> itittiitit isissiisis golfgfflgfgf yoyooyyoyo
crossed out 44 is still 44 -> crossedcddecdcd outottuotot 4444444444 isissiisis stillslllslsl 4444444444

শর্টেস্টস্টস্টস্টেস্ট উত্তরওয়ালা ইনইনিনিইনিন বাইটসেসসবস উইনসওয়সনউউউস!


খুব নিশ্চিত যে "ইলিসিসিসিস" এ "ই" গুলি "উপবৃত্ত" থেকে এসেছে (প্রথম "ই" বাদে)
লিকি নুন

15
উপবৃত্তিকে কীভাবে বহুবচন করা যায় তা আমি এখনও জানি না ... সম্পাদনা : স্পষ্টতই, এটি উপবৃত্তগুলি।
সম্পূর্ণরূপে

1
দ্বিতীয় ধাপের জন্য, আমি মনে করি এটি কেবল একটি ই যুক্ত করা উচিত, প্রথম অক্ষরটি যুক্ত করা উচিত নয়
বেনজিন

@ বেনজেন যে আরও বেশি অর্থবোধ করতে পারে তবে এখন অনেক দেরি হয়ে গেছে।
প্রোগ্রামার

2
এটি উপবৃত্তাকার । অন্যান্য বহুবচনগুলিতে একই বানানটি রয়েছে তবে এর শব্দের জন্য পৃথক উচ্চারণ রয়েছে এবং এটি শেষ হওয়া শব্দের জন্য অক্ষ এবং ভিত্তি

উত্তর:


16

জাভাস্ক্রিপ্ট (ES6), 58 57 বাইট

এনবি: এটি এই জেলি উত্তরে জোনাথন অ্যালানের মতো একই কৌশল ব্যবহার করতে দেখা গেছে (যদিও আমি পোস্টের পরে লক্ষ্য করেছি)।

জনাথন অ্যালানকে 1 বাইট সংরক্ষণ করা হয়েছে

স্ট্রিংয়ের অ্যারেগুলিতে কাজ করে।

s=>s.map(s=>s+'01120101'.replace(/./g,n=>s.substr(-n,1)))

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


ওহ, এটা দুর্দান্ত! সুন্দর কাজ!
প্রোগ্রামার

আমি বিশ্বাস করি আপনি প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষণ করতে পারবেন 21102121সঙ্গে 01120101এবং n-2সঙ্গে -n
জোনাথন অ্যালান

@ জোনাথান অ্যালান ভাল ক্যাচ ধন্যবাদ!
আর্নল্ড

11

জেলি ,  13 12  11 বাইট

⁽×ʠb3’ịṭµ€K

একটি সম্পূর্ণ প্রোগ্রাম যা অক্ষরের তালিকাগুলির একটি তালিকা নেয় এবং স্থান পৃথক আউটপুট প্রিন্ট করে।

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

কিভাবে?

⁽×ʠb3’ịṭµ€K - Main link: list of lists of characters e.g. ["this","is","it"]
        µ€  - for each word in the input:            e.g. "this"
⁽×ʠ         -   base 250 literal 5416                     5416
   b3       -   converted to base 3                       [2,1,1,0,2,1,2,1]
     ’      -   decrement                                 [1,0,0,-1,1,0,1,0]
      ị     -   index into the word                       "tssitsts"
       ṭ    -   tack to the word                          ["this",["tssitsts"]]
          K - join the results with spaces                ["this",["tssitsts"]," is",["issiisis"]," it",["ittiitit"]]
            - implicit print                              thistssitsts isissiisis itittiitit

বিকল্পভাবে শব্দের তালিকার শব্দের একটি তালিকা 11 বাইটেও সম্ভব :

⁽×ʠb3’ị;@µ€

⁽×ʠb3’4,⁵Bj-একই বাইট গণনা দ্বারা প্রতিস্থাপিত হতে পারে
( [4,10]বাইনারি [[1,0,0],[1,0,1,0]]যোগ দ্বারা যোগ করা -1হয় [1,0,0,-1,1,0,1,0])।


আপনার কি ফাঁকা জায়গা দিয়ে ফলাফলগুলিতে যোগ দেওয়ার দরকার আছে? আপনাকে একটি তালিকা / তালিকার একটি তালিকা আউটপুট করার অনুমতি দেওয়া হয়।
প্রোগ্রামার

@ প্রোগ্রামার ৫০০ হ্যাঁ, স্পেসগুলির সাথে যোগদান এখানে
ASCII- কেবল

@ প্রোগ্রামার ৫০০০ এখানে একটি বিকল্প ১১ জন বাইটার রয়েছে যা একটি তালিকা প্রদান করে যা আমি মূল উত্তরের নীচে দিয়েছি (নোট করুন যে মুখ্যটিকে নামিয়ে 10 এ নামানোর কোনও উপায় নেই Kকারণ মোনাডিক লিঙ্ক হিসাবে প্রত্যাবর্তিত তালিকাটি একটি হবে না স্তর গভীর, যা আমি কল্পনা করে আছি I / O খুব দূরের দিকে ঠেলে দিচ্ছি - ["this", "is", "it"]এটি প্রত্যাবর্তনের মূল্যের একটি ইনপুট জন্য [['t','h','i','s',"tssitsts"],['i','s',"issiisis"],['i','t',"ittiitit"]](যেখানে "..." অক্ষরের তালিকাগুলি রয়েছে) এবং এটি পুরো প্রোগ্রাম হিসাবে মুদ্রণ করা ছেড়ে দিলে তা ধ্বংস হবে would সমস্ত একসাথে হিসাবে thistssitstsisissiisisitittiitit)
জোনাথন অ্যালান

7

05 এ বি 1 ই , 12 বাইট

εD•Lz•3вÍèJ«

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

ব্যাখ্যা

ε              # apply on each word in input
 D             # duplicate the word
  •Lz•         # push the base-255 compressed number 5416
      3в       # convert to a list of base-3 digits (yields [2, 1, 1, 0, 2, 1, 2, 1])
        Í      # subtract 2 from each (yields [0, -1, -1, -2, 0, -1, 0, -1])
         è     # index into the word with these numbers
          J    # join to string
           «   # append to the original word

1
হেই, দুর্দান্ত মন ...
জোনাথন অ্যালান

@ জোনাথন অ্যালান: হ্যাঁ, আমাদের মনে হয় ঠিক একই ধারণা ছিল। জেলিস সংক্ষিপ্ত সংক্ষেপণ এই দিনটি জিতেছে :)
এমিগিনা

6

রেটিনা , 52 49 বাইট

3 বাইট ধন্যবাদ আর্নল্ডকে।

(\w)(\w+)
$1$2$1
(.)(.)(.)\b
$1$2$3$2$2$1$3$2$3$2

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


5
কোডটির তৃতীয় লাইনটি আমাকে টোটাল রিকল থেকে আসা মিউট্যান্টের কথা মনে করিয়ে দেয়।
জোনাথন অ্যালান

@ জোনাথান অ্যালান যিনি গ্যালাক্সি-তে হিচ-হিকারের গাইডে উল্লিখিত এক্সেন্ট্রিকা গ্যালুম্বিত দ্বারা অনুপ্রাণিত হয়েছিলেন।
নীল



4

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

F⪪S «ι↑E”o∨↙8”§ι±Iκ→

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

F   «                   Loop over
  S                     Input string
 ⪪                       Split at spaces
     ι                  Print the word
        ”o∨↙8”          Compressed string 01120101
       E                Map over each character
                 Iκ     Cast character to integer
                ±       Negate
              §ι        Circularly index into word
      ↑                 Print array upwards, prints each element rightwards
                    →    Move right


@ এএসসিআইআই-কেবলমাত্র -rsপতাকাটির জন্য কী আপনাকে অতিরিক্ত বাইট যুক্ত করতে হবে না ?
নীল

নিশ্চিত নই, আমারও কি এমন ধারণা? -rsসেখানে কেবল ইনপুট প্রম্পট মুদ্রণ নিষ্ক্রিয় করার আছে
ASCII- কেবল

-rsপরিবর্তে আমি কি কেবল মোডটি ডিফল্ট করব?
ASCII-


3

জাভাস্ক্রিপ্ট (ES6), 74 60 বাইট

s=>s.map(s=>s+(a=s[l=s.length-1],b=s[0])+a+a+s[l-1]+b+a+b+a)

অ্যারে হিসাবে ইনপুট নেয় এবং অ্যারের আউটপুট দেয়।

-9 বাইটস প্রোগ্রামার 5000 ধন্যবাদ

পরীক্ষার কেস:


3

গণিত, 89 বাইট

((f[a_]:=#~StringTake~a;k=#<>(q=f@1)<>(w=f[-1])<>w<>f@{-2}<>q<>w<>q<>w)&/@StringSplit@#)&

1
There's no mathematica Ellipsisessieses builtin? :(
programmer5000


3

Dyalog APL, 51 49 bytes

Requires ⎕ML←3

∊{⍺,' ',⍵}/{S←1,L←≢⍵⋄⍵,⍵[∊S(L-0 1)S S]}¨' '(≠⊂⊢)⍞

-9 bytes thanks to @Adám in chat!

Try it online!


3

Paradoc (v0.2.10), 13? bytes (CP-1252)

µ96Qó3BÌDX=v+

Try it online!

Takes a list of words, and results in a list of words on the stack.

A small variation on the base-3 trick. Maybe it's time to work on my base 250-whatever compressor.

Explanation:

μ             .. Map the following block over each word (the block is
              .. terminated by }, but that doesn't exist, so until EOF)
              .. (The word is on the stack now.)
 96Qó         .. 96 * 26 (Q in base 26) = 2496, a hack to prevent us from
              .. needing a space to separate this from the following number.
     3B       .. Convert 2496 to base 3 to get [1,0,1,0,2,1,1,0]
       ÌD     .. Negate and reverse to get [0,-1,-1,-2,0,-1,0,-1]
         X    .. Push the loop variable: the word being mapped over
          =v  .. Index, vectorize; map over the indices by indexing them
              .. into the word
            + .. Concatenate with the original word

(Byte-counting question: Now that I'm actually demonstrating this in TIO, it take a list of words on the stack and results in a list of words on the stack, but you can't really do much with that list of words unless you close the block started by µ. Should I count that closing brace?)


1
Should I cound that closing brace? Yes, if you need it.
Erik the Outgolfer

3

Wolfram Language/Mathematica, 66 bytes

StringJoin[StringSplit[#,""]/.{a_,___,b_,c_}:>{#,a,c,c,b,a,c,a,c}]&

Just whipped it up real quick, might have a minor improvement here or there.




2

Java 8, 117 bytes

a->{int i=0,l;for(String s:a){char c=s.charAt(0),d=s.charAt(l=s.length()-1);a[i++]+=""+c+d+d+s.charAt(l-1)+c+d+c+d;}}

Takes the input as a String-array, and modified this original array instead of returning a new one to save bytes.

Can most likely be golfed some more..

Explanation:

Try it here.

a->{                          // Method with String-array as parameter and no return-type
  int i=0,                    //  Index-integer (starting at 0)
      l;                      //  Length-integer which we use multiple times
  for(String s:a){            //  Loop over the input array
    char c=s.charAt(0),       //   The first character of the word
         d=s.charAt(          //   The last character of the word
            l=s.length()-1);  //    and set `l` at the same time to `length()-1`
    a[i++]+=                  //   Append to the current value in the array:
      ""                      //    String so the characters aren't appended as integers
      +c                      //    + the first character
      +d+d                    //    + two times the last character
      +s.charAt(l-1)          //    + the single-last character
      +c+d+c+d;               //    + the first + last character two times
  }                           //  End of loop
}                             // End of method

2

C# (.NET Core), 106 bytes

n=>{for(int i=0,x;i<n.Length;){var h=n[i];x=h.Length-1;char y=h[0],j=h[x];n[i++]=h+y+j+j+h[x-1]+y+j+y+j;}}

Try it online!

Lambda function that takes input as array of strings, and modifies original array for output

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