মার্কি সাইন লেটার


41

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

উদাহরণ

Input:  ['ONE', 'TWO', 'THREE', 'SEVENTEEN']
Output: ['ENO', 'TW', 'EHR', 'EENSV']

দিন 1: আপনার কাছে কোনো চিঠি দিয়ে শুরু, তাই লিখতে ONE, আপনি তার সকল চিঠি কিনতে E, N, O। দ্বিতীয় দিন
: পরের দিন, আপনি আপ রাখতে চান TWO (নীচে নামিয়ে ONE)) আপনি ইতিমধ্যে একটি Oথেকে পেয়েছেন ONE, তাই আপনি একটি অতিরিক্ত ক্রয় TW
তৃতীয় দিন: এই মুহুর্তে, আপনার আছে ENOWT। লিখতে THREE, আপনার প্রয়োজন EHR। মনে রাখবেন যে আপনার Eকাছে থাকা ছাড়াও আপনাকে একটি দ্বিতীয় কিনতে হবে।
৪ র্থ দিন: লেখার জন্য SEVENTEENআপনার কাছে Eমোট 4 টির দরকার যা ইতিমধ্যে আপনার দুটি (তিনটি নয়!) রয়েছে, সুতরাং আপনি আরও দুটি কিনে। এছাড়াও আপনি আছে Tএবং এক Nএর, তাই আপনি অবশিষ্ট অক্ষর কিনতে: EENSV

আমরা এই উদাহরণে বর্ণমালা অনুসারে আউটপুট বর্ণগুলি সাজিয়েছি তবে আপনি সেগুলি যে কোনও ক্রমে আউটপুট করতে পারেন।

ইনপুট: অক্ষরের খালি খালি স্ট্রিংয়ের একটি খালি খালি তালিকা A-Z। আপনি যদি পছন্দ করেন তবে ছোট হাতের ব্যবহার করতে পারেন। অক্ষরের তালিকা স্ট্রিংয়ের জন্য ভাল।

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

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

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

['ONE', 'TWO', 'THREE', 'SEVENTEEN']
['ENO', 'TW', 'EHR', 'EENSV']

['ONE', 'TWO', 'ONE', 'THREE']
['ENO', 'TW', '', 'EHR']

['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC']
['ABC', 'A', 'B', 'C', '']

['SHORT', 'LOONG', 'LOOOONG', 'LOOOOOOONG', 'SHORT', 'LOOONG']
['HORST', 'GLNO', 'OO', 'OOO', '', '']

এখানে পৃথক তালিকা হিসাবে সমস্ত ইনপুট এবং আউটপুট রয়েছে:

[['ONE', 'TWO', 'THREE', 'SEVENTEEN'], ['ONE', 'TWO', 'ONE', 'THREE'], ['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC'], ['SHORT', 'LOONG', 'LOOOONG', 'LOOOOOOONG', 'SHORT', 'LOOONG']]
[['ENO', 'TW', 'EHR', 'EENSV'], ['ENO', 'TW', '', 'EHR'], ['ABC', 'A', 'B', 'C', ''], ['HORST', 'GLNO', 'OO', 'OOO', '', '']]

এবং স্পেস-বিভাজিত স্ট্রিং হিসাবে (আউটপুট পদার্থের পিছনে স্থানগুলি):

ONE TWO THREE SEVENTEEN
ONE TWO ONE THREE
ABC AABC ABBC ABCC AABBCC
SHORT LOONG LOOOONG LOOOOOOONG SHORT LOOONG

ENO TW EHR EENSV
ENO TW  EHR
ABC A B C 
HORST GLNO OO OOO  

লিডারবোর্ড



আমরা কি অক্ষরের একটি অ্যারে হিসাবে আউটপুট দিতে পারি যা সমস্ত অক্ষরের স্ট্রিংয়ের পরিবর্তে কেনা দরকার? যেমন:[['E', 'N', 'O'], ...]
ডাউনগোট

SHORTLONGOOOOOশেষ আউটপুট জন্য আউটপুট বৈধ? একে একে কোন সীমানা ব্যবহারকারীর ব্যবহার নেই?
ম্যাজিক অক্টোপাস উরান

@ ডাউনগোট হ্যাঁ, তালিকাগুলি অক্ষর আউটপুট থেকে ভাল fine
xnor

@ ম্যাজিক অ্যাক্টপাস ইউরন না, আপনার ডিলিমিটার দরকার, অন্যথায় আপনি কোন দিন কোন চিঠিগুলি তা বলতে পারবেন না।
xnor

উত্তর:


10

হাস্কেল, 54 49 বাইট

import Data.List
g x=zipWith(\\)x$scanl(++)""$g x

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

আমরা \\ইনপুট তালিকার তালিকার পার্থক্য ( ) এবং আউটপুট তালিকার সংযোজনীয় সংযোজন (শুরু দিয়ে "") গণনা করে আউটপুট তালিকাটি তৈরি করি ।

input list:                ONE       TWO       THREE        SEVENTEEN
cumulative append:         ""   +->  ONE  +->  ONETW   +->  ONETWHRE
list difference (output):  ONE -+    TW  -+    HRE    -+    SVEEN

উভয় Data.Listএবং Data.Functionসুযোগে (যেমন ল্যাম্বডাবোট পরিবেশ ব্যবহার করে), এটি 30 বাইটে সংক্ষিপ্ত করা যেতে পারে:

fix.(.scanl(++)"").zipWith(\\)

সম্পাদনা: -5 বাইটস @ শ্রীওতচিলিজম ও'জাইককে ধন্যবাদ thanks



10

পাইথন 2 , 72 68 বাইট

-4 বাইট জনাথন অ্যালান ধন্যবাদ।

p=''
for r in input():
 for x in p:r=r.replace(x,'',1)
 print r;p+=r

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

মন্তব্য

l=input()       # the list of words to write
p=''            # p contains all letters we own
for r in l:     # for each word ...
  for x in p:   # for each letter we own ...
    r=r.replace(x,'',1)   # remove one occurence from the current word
  print r       # print the remaining word
  p+=r          # add the remaining chars to p

3
for r in input():4 বাইট সঞ্চয়
জোনাথন অ্যালান


7

পার্ল 6 , 44 বাইট

{$!=@;.map:{kxxv $!=.comb.Bag∖($⊎=$!):}}

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

অক্ষরের তালিকার তালিকা হিসাবে আউটপুট।

ব্যাখ্যা

{                                      } # Anonymous codeblock
 $!=@;                                   # Initialise $! to an empty list
      .map:{                          }  # Map each item in the input to
                    .comb                # The string split to characters
                         .Bag            # In a Bag
                                        # Set minus
                              ($⊎=$!)    # The accumulated Bag of results
                 $!=                     # And save the result for the next item
            kxxv                     : # Then decompose the Bag into a list

2
ডাউনভোটের একটি কারণ প্রশংসা করা হবে
জো কিং

ডাউনভোটার নয়, তবে আমি এই আউটপুট ফর্ম্যাটটি খুব দূরে বলব। এর মতো কিছুতে Bag(E(2), N, S, V)আসলে দুটি ই ঠিক আছে তা দেখাতে হবে।
xnor

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

ডাউনভোটার, আপনি দয়া করে ব্যাখ্যা করতে পারেন, এটি কি I / O বা অন্য কিছু সম্পর্কে? ব্যাগের ফর্ম্যাট সম্পর্কে, আমি পার্লকে চিনি না, পার্ল গল্ফগুলিতে এই কি I / O এর পক্ষে সাধারণ? দস্তাবেজগুলির দিকে তাকানো (সাইটটি ডাউন থাকায় ক্যাশে হয়েছে), তারা আমার কাছে পাইথনের অনুরূপ পাইথনের মতো ডিক্টের মতো বলে মনে হচ্ছে collections.Counterযা আমি আউটপুট হিসাবে দেওয়ার অনুমতি চাইনি। কোনও সহজেই ব্যাগ এলটগুলির দ্বারা বহুগুণ সহ একটি তালিকা / অ্যারেতে কাস্ট করা, বহুগুণ সহ প্রদর্শন করা যায়?
xnor

3
ডাউনভোট একটি ভুল ছিল, আপ হতে বোঝানো হয়েছিল।
জোনাথন অ্যালান

7

হাস্কেল , 44 বাইট

import Data.List
foldl1(\a x->a++',':(x\\a))

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

আউটপুট ONE,TW,HRE,SVEENদিনের মধ্যে কমা সহ একটি স্ট্রিং ।


1
ভাঁজ \`. And an unexpected 1` বেস কেসটিও ভাঁজ করতে হবে না এড়ানোর জন্য আউটপুট ফর্ম্যাটটির কী দুর্দান্ত ব্যবহার ।
xnor

7

জাভাস্ক্রিপ্ট (নোড.জেএস) , 59 বাইট

a=>a.map(h=>([...t].map(c=>h=h.replace(c,'')),t+=h,h),t='')

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

বেশ সোজা সমাধান। প্রতিটি শব্দের জন্য h, ইতিমধ্যে আমাদের কাছে থাকা অক্ষরগুলি সরান।

এখানে সেই কোডটির একটি বর্ণিত সংস্করণ দেওয়া হয়েছে:

f = list => {
  // the string that accumulates all the letters already bought
  let accu = '';
  // for every word in the list
  return list.map( word => {
    // for every letter already bought 
    [...accu]
      // remove the letter from the word
      .map(char => {
        return word = word.replace(char,'')
      });
    // add not bought letters to accumulator
    accu += word;
    // the reduced word (without already bought letters) should be added to result map
    // this represents the letters to buy today
    return word
  }, accu)
}

console.log(f(['ONE', 'TWO', 'THREE', 'SEVENTEEN']))
console.log(f(['ONE', 'TWO', 'ONE', 'THREE']))
console.log(f(['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC']))
console.log(f(['SHORT', 'LOONG', 'LOOOONG', 'LOOOOOOONG', 'SHORT', 'LOOONG']))


আমার অন্যথায় অত্যধিক জটিল সমাধান থেকে একমাত্র সার্থক কৌশল ধার করে আপনি 1 বাইট সংরক্ষণ করতে পারেন ।
আর্নউল্ড

5

জে , 29 বাইট

-29 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য!

(],a.<@#~0>.-&(1#.a.=/;))/@|.

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

আসল পোস্ট

জে , 58 বাইট

[:}.@>[:(],<@(/:~@({.@>@-.&(((e.<@#[){:)\));))&.>/<@a:,~|.

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

"পুনরাবৃত্তি অংশকে সম্মান করার সময় অক্ষরগুলি বিয়োগ করতে" উন্নত করার জন্য এনএনজি ধন্যবাদ।

জেদের জন্য দুর্দান্ত ফিট নয়, তবে একটি আলোকিত মহড়া exercise

আসুন একটি সহায়ক ক্রিয়া wo("ছাড়াই") তৈরি করে শুরু করুন যা পুনরাবৃত্তির প্রতি শ্রদ্ধা রেখে এক অধ্যায় থেকে সমস্ত অধ্যায়কে সরিয়ে দেয়।

wo=.{.@>@-.&(((e. <@# [) {:)\)

এখানে একটি মজাদার ধারণা রয়েছে: আমরা প্রতিটি চরিত্রের প্রতিটি পুনরাবৃত্তিটিকে প্রয়োজনীয় সংখ্যার পুনরাবৃত্তি করে অনন্য করে তুলি। সুতরাং যদি আমাদের মূল স্ট্রিংটি ABBAহয়ে যায়:

┌─┬─┬──┬──┐
│A│B│BB│AA│
└─┴─┴──┴──┘

তৃতীয় Aহয়ে উঠবে AAAইত্যাদি। এই শব্দগুচ্ছ দ্বারা সম্পন্ন হয় ((e. <@# [) {:)\, যা প্রতিটি উপসর্গ লাগে \চূড়ান্ত উপাদান এ দেখায় {:সেই প্রেফিক্স এটা, এবং সব উপাদানের একটি মাস্ক নির্মান ম্যাচের e.যে চূড়ান্ত উপাদান, এবং তারপর ফিল্টার এবং বক্স শুধু যারা উপাদান <@#

আমাদের ইনপুটগুলি উভয় "অনন্য-আইয়েড" দিয়ে আমরা -. পুনরাবৃত্তির সম্মান রেখে এখন নিরাপদে স্বাভাবিক সেট বিয়োগ ব্যবহার করতে পারি ।

তারপরে আমরা প্রতিটি ফলাফল খুলি এবং আমাদের পুনরাবৃত্তিগুলি "পূর্বাবস্থায় ফেলার জন্য" প্রথম উপাদানটি নিয়ে যাই: {.@>

এই সহায়ক ক্রিয়াটি প্লাগ ইন করা, আমাদের সামগ্রিক সমাধান (যা কেবল এটি ইনলাইন করে) হয়ে যায়:

[: }.@> [: (] , <@(/:~@wo ;))&.>/ <@a: ,~ |.

মূলত, আমরা এখানে যা করি তা হ'ল একক হ্রাস হিসাবে আমাদের সমস্যাটি সেটআপ করা। আমরা ইনপুটটি বিপরীত করা |.এবং এটিতে ,~একটি এস a:বা খালি বাক্স যুক্ত করা শুরু করি যা আমাদের চূড়ান্ত ফলাফলের প্রাথমিক মূল্য হবে, যেমন:

┌─────────┬─────┬───┬───┬──┐
│SEVENTEEN│THREE│TWO│ONE│┌┐│
│         │     │   │   ││││
│         │     │   │   │└┘│
└─────────┴─────┴───┴───┴──┘

হ্রাস কার্যকর করতে আমরা প্রতিটি উপাদানগুলির মধ্যে নিম্নলিখিত ক্রিয়াটি আটকে রাখি:

(] , <@(/:~@wo ;))/

এটি বলে: ডান ইনপুট নিন ](যেমন, আমাদের ফলাফল) এবং এটিতে , বাম ইনপুটটি যুক্ত করুন ( ONEএটি প্রথম পুনরাবৃত্তির TWOউপর, ২ য়, ইত্যাদি) ডান woইনপুটটির রাজেজ ব্যতীত ;(যেমন, পূর্ববর্তী কোনও অক্ষর ছাড়াই) ব্যবহৃত), তবে এটিকে সাজানোর আগে /:~এটিকে আবার বাক্স করুন <@

এত কিছুর শেষে আমাদের ফলাফলটি আমরা চাইব, বাক্সগুলির একটি তালিকা, তবে একটি বড় অতিরিক্ত বাক্সের অভ্যন্তরে, এবং এখনও সামনের খালি বাক্সের সাথে। সুতরাং আমরা বাইরের বক্স মুছে ফেলার এবং প্রথম উপাদান হত্যা করার খুলুন }.@>


[:}.@>|.(],a.<@#~0>.-&(1#.a.=/;))&.>/@,<@a:
ফ্রাউনফ্রোগ

একটি সরল (],a.<@#~0>.-&(1#.a.=/;))/@|.এছাড়াও কাজ করে যদি না আমি প্রান্তের মামলাটি মিস করি।
ফ্রাউনফ্রোগ

আমি যতদূর বলতে পারি, বাছাই করা প্রয়োজনীয়তার কোথাও নেই।
ফ্রেউনিফ্রোগ

2
আপডেট হয়েছে এবং এখন এটি শোষনের সময় পেয়েছি, কেবল আবার বলতে চেয়েছিলেন: এটি জেদ সুন্দর জে!
জোনাহ

4

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

a=>a.map(b=s=>[...s].filter(c=>x==(x=x.replace(c))?b+=c:0,x=b+0))

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

মন্তব্য

bbxcxb

a =>                      // a[] = input
  a.map(b =               // initialize b to the callback function of this map()
                          // it will be coerced to a string that does not contain
                          // any letter in uppercase
    s =>                  // for each entry s in a[]:
    [...s].filter(c =>    //   for each character c in s:
      x == (              //     check whether x is changed when
        x = x.replace(c)  //     c is replaced with 'undefined'
      ) ?                 //     if so:
        b += c            //       append c to b and keep c
      :                   //     else:
        0,                //       discard c
      x = b + 0           //     coerce b to a string and save it in x
    )                     //   end of filter()
  )                       // end of map()

4

সি ++ (জিসিসি) , 177 170 বাইট

-5 বাইটস @ আনাতোলিগের টিপকে ধন্যবাদ, -2 ছোট জিনিসগুলিতে বাইটস আমি লক্ষ্য করেছি।

#import<random>
#define v std::vector<std::string>
v a(v p){std::vector<int>o(91),b;int j=-1;for(auto i:p){b=o;p[++j]="";for(int c:i)--b[c]<0?p[j]+=c,++o[c]:0;}return p;}

ব্যাখ্যা

#import<random>উভয় <string>এবং <vector>অর্ধেক বাইট জন্য যোগ করুন ।

প্রথমে 0-এর 91-উপাদান ভেক্টর তৈরি করে (কেবল সূচকগুলি 65-90 অক্ষরের উপস্থিতিগুলি সংরক্ষণ করতে ব্যবহৃত হয়) এবং একই ধরণের অন্য ভেক্টর কিন্তু মান হিসাবে সেট করা হয় না। ইনপুটটির প্রতিটি উপাদান (দিনগুলি) এর মাধ্যমে আইট্রেটস: বর্তমানে মালিকানাধীন অক্ষরগুলি পাওয়া যায়, দিনের জন্য প্রয়োজনীয় চিঠিগুলি পাওয়া যায়, প্রয়োজনীয় পরিমাণে সূচকগুলিতে ইনপুটটিকে ওভাররাইড করে এবং মালিকানাধীন অক্ষরগুলি আপডেট করে। ওভাররাইড হওয়া ইনপুট ফেরত দেয়।

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


বাইট গণনাটি 6 বাইট কমাতে আপনি করতে #define v std::vector<std::stringএবং মুছে ফেলতে using namespace stdপারেন।
এনাটলিগ

2

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 123 বাইট

a=>{var b="";for(dynamic i=0,e,f;i<a.Count;b+=a[i++]=f)foreach(var c in((e,f)=(b.ToList(),"")).f+a[i])f+=e.Remove(c)?"":c;}

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

বেনামে ফাংশন যা ইনপুট অ্যারে সংশোধন করে আউটপুট দেয়।

// a: input array of strings
a=>{
  // b: cumulative letters
  var b="";
  for(
    // i: loop index of string
    // e: copy of cumulative letters for manipulation
    // f: characters missing from current string
    dynamic i=0,e,f;
    // iterate over each string in a
    i<a.Count;
    // add missing letters of the day to
    // cumulative missing letters and
    // update array for output
    b+=a[i++]=f
  )
    // iterate current string with character c
    foreach(var c in
      // tuplized variable assignment
      // e=b.ToList()
      //   set e to a copy of the cumulative letters
      // f=""
      //   initially there are no letters needed for the day
      ((e,f)=
      (b.ToList(),"")).f+a[i]
    )
      // conditionally add c to missing letters for the day
      f+=e.Remove(c)?"":c;
}

2

আর, 119 112 106 103 বাইট

দুটি দীর্ঘতর ফাংশন নাম আলিয়াস করা থেকে বাইটস এবং এখন scan()
-6 বাইট থেকে ব্যবহারকারী ইনপুটটি strsplit()শুরুতে একবার কল করার
জন্য -3 বাইটগুলি আবার এলিয়াসিং থেকে মুক্তি পেতে এবং একটি কলটিতে দুটি ভেরিয়েবল নির্ধারণ করে

(এছাড়াও বাইট গণনাটি সম্পাদনা করা হয়েছে যা আগে ভ্রান্তভাবে কম ছিল)

a=scan(,'');b=a=strsplit(a,'');for(i in 2:length(a))b[[i]]=vecsets::vsetdiff(a[[i]],unlist(b[1:i-1]));b

এটি আমার প্রথম কোনও প্রকারের পিপিসি জমা! তাই গল্ফিংয়ের ক্ষেত্রে এবং শিষ্টাচার পোস্ট করার ক্ষেত্রে আমি কী করছি তা আমার কোনও ধারণা নেই। আউটপুটটি ভেক্টরগুলির একটি তালিকা যা চ্যালেঞ্জের শর্তগুলি পূরণ করতে পারে বা নাও করতে পারে। :-P

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


1
না, এটা ঠিক আছে। আমি বাহ্যিক প্যাকেজগুলি ব্যবহারে নিজেকে কিছুটা অনিচ্ছুক, তবে এটি কেবল আমার ... আমি বেস আর কোডের চ্যালেঞ্জগুলির কাছে যেতে পছন্দ করি;)
digEmAll






2

জাপট , 15 14 বাইট

£Q®X=rZPPÃQ±XX

চেষ্টা করে দেখুন

£Q®X=rZPPÃQ±XX     :Implicit input of array
£                  :Map each X
 Q®                :  Map each Z in Q (initially a quotation mark)
   X=              :    Reassign to X
     rZ            :    Replace Z with
       P           :    The empty string
        P          :    With the default global flag disabled
         Ã         :  End map
          Q±X      :  Append X to Q
             X     :  Return X

1
@ ডাউনভোটার, দয়া করে কোনও মন্তব্য করার বিনয় করুন।
শেগি


1

পাওয়ারশেল , 71 বাইট

$args|%{$w=$_;$p|% t*y|%{$w=$w-replace"^(.*?)$_(.*)",'$1$2'};$w;$p+=$w}

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

ইনপুট শব্দ নেয় $argsএবং তাদের উপর পুনরাবৃত্তি। প্রতিটি পুনরাবৃত্তি আমরা বর্তমান শব্দটি সেট করি $w, তারপরে আমাদের $pইতিমধ্যে কেনা অক্ষরের oোলকে লুপ করে । প্রতিটি অভ্যন্তরীণ লুপ, আমরা -replaceআমাদের বর্তমান $wঅর্ডে একটি রেজেক্স সঞ্চালন করি , যাতে আমরা আমাদের $pfromল থেকে চিঠিটির প্রথম প্রথম প্রতিস্থাপন করে থাকি। একবার পুলের সমস্ত অক্ষরগুলি পেরোনোর ​​পরে, আমরা কী বাকী থাকে $w(যেমন, আমাদের কী কিনে নেওয়া দরকার) আউটপুট করি এবং তারপরে $p+=$wপরবর্তী শব্দের জন্য আমাদের পুলে সেই অক্ষরগুলি সরিয়ে আনি ।


1

এক্সেল ভিবিএ, 127 বাইট

Function z(w)
z=""
For Each x In w.Cells
v=x.value
For y=1To Len(z)
v=Replace(v,Mid(z,y,1),"",1,1)
Next
z=z&v
Next
End Function

একটি এক্সেল পরিসীমা আকারে ইনপুট নেয়।


1

সি (জিসিসি) , 118 বাইট

m(a,r,q,u)char**a,*r,*q,*u;{for(;*a;a++,memcpy(r,q,255))for(memcpy(q,r,255),u=*a;*u;u++)*u=r[*u]-->0?32:(q[*u]++,*u);}

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

অল্প বোনাস rহিসাবে এটি শুরুতে একটি অ্যারের হিসাবে স্টক গ্রহণ করে । aফাঁকা জায়গায় প্রতিস্থাপিত সমস্ত পূর্ব-মালিকানাধীন অক্ষরের সাথে ইনপুট নাল-টার্মিনেটেড নাল-টার্মিনেটেড-স্ট্রিং তালিকা আউটপুট দেয় ।



1

05 এ বি 1 , 11 বাইট

-6 কেভিন ক্রুইজসেনকে ধন্যবাদ

ćsvDysSõ.;»

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


1
তোমার 15 byter কাজ, কিন্তু আমি চিহ্ন প্রতিস্থাপন করবে Jসঙ্গে »। এছাড়াও, আপনি প্রতিস্থাপন 4 বাইট সংরক্ষণ করতে পারবেন vyð.;}ðKসঙ্গে Sõ.; 11 বাইট
কেভিন ক্রুইজসেন

আহ্হ্হ্ ... এটি ভেক্টরাইজ করার জন্য আমার এস দরকার ছিল।
ম্যাজিক অক্টোপাস উরন

1

সুইফট 4.2 / এক্সকোড 10.2 , 244 242 239 238 বাইট

a.reduce(([Character:Int](),[String]())){c,l in let b=l.reduce(into:[Character:Int]()){$0[$1,default:0]+=1}.map{($0,max(0,$1-(c.0[$0] ?? 0)))};return(c.0.merging(b){$0+$1},c.1+[b.map{String(Array(repeating:$0.0,count:$0.1))}.joined()])}.1

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

বর্ণগুলি বর্ণানুক্রমিকভাবে সাজানো হয় না, এটি বিধি দ্বারা নিষিদ্ধ নয়।


1

স্কালা, 68 বাইট

(c:Seq[String])=>c./:(Seq(""))((a,n)=>a:+n.diff(a./:("")(_+_))).tail

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

/: হ'ল ফোল্ড লেফট অপারেটরের জন্য স্বল্প হাত, একটি সমষ্টি, শেষ পর্যন্ত আমরা যে ফলাফলটি চাই তা ফেরত দেয়, n পরবর্তী উপাদান

আন golfed

def NewLettersPerDay(c: Seq[String]): Seq[String] = {
    c.foldLeft(Seq(""))((agg, next) => {
      val existingLetters = agg.reduce(_+_)
      val newDayLetters = next.diff(existingLetters)
      agg :+ newDayLetters
    }).tail
}


0

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

EθΦι¬⊙…θκ‹№…ιμλ№νλ

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

 θ                  Input array
E                   Map over strings
   ι                Current string
  Φ                 Map over characters
       θ            Input array
      …             Truncated to length
        κ           Outer index
    ¬               Logical Not
     ⊙              Any element exists where
          №         Count of
              λ     Current letter in
            ι       Outermost word
           …        Truncated to
             μ      Current letter index
         ‹          Is less than
               №    Count of
                 λ  Current letter in
                ν   Innermost word
                    Implicitly print each day's bought letters on their own line

0

পিএইচপি, ইউটিএফ -8 সচেতন (253 বাইট)

<?php $p=[];for($i=1;$i<$argc;$i++){$a=$p;$b=[];for($j=0;$j<mb_strlen($s=$argv[$i]);$j++){$k=1;if(isset($a[$c=mb_substr($s,$j,1)]))if($a[$c]){$k=0;$a[$c]--;}if($k){echo $c;if(isset($b[$c]))$b[$c]+=$k;else $b[$c]=$k;}}$p=array_merge($p,$b);echo PHP_EOL;}

0

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 112 বাইট

a=>{var b="";for(int i=0;;b+=a[i++])foreach(var z in b)if(a[i].Contains(z))a[i]=a[i].Remove(a[i].IndexOf(z),1);}

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


হুম ... এটি ব্যতিক্রম ছুঁড়েছে?
দানা

@ ডানা আমি নিশ্চিত যে ফাংশনগুলি কিছুই ফিরিয়ে দেয় না তাদের ব্যাতিক্রম ছাড়ার অনুমতি দেওয়া হয়
অজ্ঞতার

আকর্ষণীয় ... আমি মনে করি এটি আশ্চর্যের নিয়ম নয়।
ডানা




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