একটি "সিইআইইআই" প্রোগ্রাম করুন


95

একবার আমি একটি জাভাস্ক্রিপ্ট প্রোগ্রাম লিখেছিলাম যা ইনপুটটিকে একটি স্ট্রিং এবং একটি চরিত্র হিসাবে গ্রহণ করবে এবং প্রথম অক্ষর এবং ইনপুট হিসাবে দেওয়া অক্ষরটি একে একে একে বাদ দিয়ে সমস্ত অক্ষর সরিয়ে ফেলবে।

উদাহরণস্বরূপ, ইনপুটগুলির সাথে এটি গণনা করা codegolf.stackexchange.comএবং eচরিত্রের ফলন:

codegolf.stackexchange.com
cdegolf.stackexchange.com
cegolf.stackexchange.com
ceolf.stackexchange.com
celf.stackexchange.com
cef.stackexchange.com
ce.stackexchange.com
cestackexchange.com
cetackexchange.com
ceackexchange.com
ceckexchange.com
cekexchange.com
ceexchange.com
ceechange.com
ceehange.com
ceeange.com
ceenge.com
ceege.com
ceee.com
ceeecom
ceeeom
ceeem
ceee

এটি প্রথম চরিত্রটি রাখে এবং সমস্ত e। অন্য সমস্ত অক্ষর একে একে মুছে ফেলা হয়েছে।

আপনার কাজটি এমন একটি প্রোগ্রাম লিখুন (বা ফাংশন) যা দুটি প্রভাব ফেলবে এবং আউটপুট (বা ফেরত দেয়) যা এই প্রভাবটি সম্পাদন করে।

বিশেষ উল্লেখ

  • আপনি ধরে নিতে পারেন যে স্ট্রিংটিতে কোনও নতুন লাইন থাকবে না।
  • দ্বিতীয় ইনপুট সর্বদা একটি অক্ষর হবে।
  • যদি উত্তরটি কোনও ফাংশনের আকারে থাকে তবে আপনি আউটপুটটিতে প্রতিটি লাইন যুক্ত স্ট্রিংগুলির একটি অ্যারে ফিরে আসতে পারেন।
  • আউটপুটটিতে একটি পিছনের নিউলাইন থাকতে পারে।

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

Test Cases, s:

Test Cases
Tst Cases
Ts Cases
TsCases
Tsases
Tsses
Tsss

Make a "Ceeeeeeee" program, e:

Make a "Ceeeeeeee" program
Mke a "Ceeeeeeee" program
Me a "Ceeeeeeee" program
Mea "Ceeeeeeee" program
Me "Ceeeeeeee" program
Me"Ceeeeeeee" program
MeCeeeeeeee" program
Meeeeeeeee" program
Meeeeeeeee program
Meeeeeeeeeprogram
Meeeeeeeeerogram
Meeeeeeeeeogram
Meeeeeeeeegram
Meeeeeeeeeram
Meeeeeeeeeam
Meeeeeeeeem
Meeeeeeeee

Hello World!, !:

Hello World!
Hllo World!
Hlo World!
Ho World!
H World!
HWorld!
Horld!
Hrld!
Hld!
Hd!
H!

Hello World!, z:

Hello World!
Hllo World!
Hlo World!
Ho World!
H World!
HWorld!
Horld!
Hrld!
Hld!
Hd!
H!
H

alphabet, a:

alphabet
aphabet
ahabet
aabet
aaet
aat
aa

upperCASE, e:

upperCASE
uperCASE
uerCASE
ueCASE
ueASE
ueSE
ueE
ue

এটি , তাই সংক্ষিপ্ততম কোডটি (বাইটে) জয়ী।


27
কিন্ডা এলোমেলো, তবে +1
টেক্সক্রাফটিং

25
+1 এর জন্যMeeeeeeeeegram
ফ্লিপট্যাক

যে ক্ষেত্রে এটি একটি অ্যারের ফেরত দেয়, প্রতিটি উপাদানকে কি একটি অনুবর্তনযোগ্য নিউলাইন অন্তর্ভুক্ত করতে হয়?
ব্র্যাড গিলবার্ট

@ ব্র্যাডগিলবার্টব 2 গিলস নং
এওসোলিং ফল

4
মেইইইইইইইইম
ম্যাথিম

উত্তর:


5

ভি , 12 বাইট

òYpó.“„a]òd

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

Hexdump:

00000000: f259 70f3 2e93 8412 615d f264            .Yp.....a].d

আমি চ্যালেঞ্জের আগে উপলব্ধ ভি এর সর্বশেষতম সংস্করণ দিয়ে এটি পরীক্ষা করেছি এবং এই উত্তরটি প্রতিযোগিতামূলক করে সমস্ত কিছু সঠিকভাবে চলে।

ব্যাখ্যা:

ò         ò    " Recursively:
 Yp            "   Duplicate this line
   ó           "   Remove:
    .a]      "     A compressed regex
            d  " Delete our extra line

সংকোচিত রেজেক্স অনুবাদ করে

.\zs[^e]

যার অর্থ

.           " Any character
 \zs        " Leave the previous character out of the selection
    [^e]    " Any character except for 'e' (Or whatever is given for input)

অ-প্রতিযোগিতামূলক সংস্করণ (11 বাইট)

Ypএই চ্যালেঞ্জটি পোস্ট করার সময় এই সংস্করণটি শর্টকাট ব্যবহার করে।


@ চ্যালেঞ্জার 5 দুর্দান্ত! আমি একটি পুরানো সংস্করণ যাচাই করব এবং এটি সঠিকভাবে কাজ করে যাচাই করব। আমি এটি সামান্য পরিবর্তন করতে হবে। আমি আপডেট হয়ে গেলে আমি আপনাকে পিং করব।
ডিজেএমসিএমহেম

@ চ্যালেঞ্জার 5 আমি উত্তরটি সম্পাদনা করেছি এবং যাচাই করেছি যে এই সংস্করণটি কাজ করেছিল কিনা তা যাচাই করেছি।
ডিজেএমসিএমহেম

আমি কীভাবে একটি লিনাক্স সিস্টেমের একটি ফাইলে সঞ্চিত ভিচ কমান্ডগুলির একটি গুচ্ছকে কার্যকর করব? আমি cat filename | vimবা আমি অন্য কিছু করতে হবে?
ckjbgames

31

ভিম, 27, 26 , 25 বাইট

DJqqYp:s/.\zs[^<C-r>-]<CR>@qq@qD

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

ইনপুট এই বিন্যাসে আসে:

e
codegolf.stackexchange.com

আমার নিষ্পাপ প্রথম পদ্ধতিটি তিন বাইট দীর্ঘ:

i:s/.\zs[^<Right>]<Esc>"addqqYp@a@qq@qdd

আমি এই উত্তরটি নিয়েও খুশি কারণ এটি আমার নাম দিয়ে শুরু হয়।

DJqq:t$|s/.\zs[^<C-r>"]<CR>@qq@qD
DJMcMayhem

মিল দেখেন? অঁ্যা?

কম সফল পন্থা:

i:s/.\zs[^<Right>]<Esc>"addqqYp@a@qq@qdd
i:s/.\zs[^<Right>]<CR>@q<Esc>"adkqqYp@aq@qdd
DJ:s/.\zs[^<C-r>"]<CR>uqqYp@:@qq@qdd
DJqq:t.|$s/.\zs[^<C-r>"]<CR>@qq@qdd

ব্যাখ্যা:

D                                   " Delete everything on this first line
 J                                  " Remove this empty line
  qq                                " Start recording into register 'q'
    Y                               " Yank this line
     p                              " And paste it
      :s/                           " Run a substitute command on the last line in the buffer. Remove:
         .                          "   Any character
          \zs                       "   Move the selection forward (so we don't delete the first one)
             [^<C-r>-]              "   Followed by anything *except* for the character we deleted
                      <CR>          " Run the command
                          @q        " Call register 'q'
                            q       " Stop recording
                             @q     " Run the recursive macro
                               D    " Delete our extra line

1
আমার মনে হয় আপনি সেখানে একটি টাইপো পেয়েছেন যেখানে ইনপুট দেওয়া হয়েছে সেখানে kঅনেক বেশি রয়েছে :)
geisterfurz007

@ geisterfurz007 আমি নিশ্চিত না আপনি কী বোঝাতে চেয়েছেন?
ডিজেএমসিএমহেম

এটি (...)comkবর্তমানে 5 লাইনটি বলে ।
geisterfurz007

এখানে ব্যবহার করার কোনও কারণ :tনেই। সাধারণ Ypএকটি বাইট সংরক্ষণ করতে হবে। আপনাকে <C-R>-অবশ্যই স্যুইচ করতে হবে। সাধারণ পিপিসিজি নিয়ম হতাশাজনক, কারণ যে কোনও যুক্তিসঙ্গত পরীক্ষার ক্ষেত্রে, :t.|sসাথে 99@:বা এমনকি 999@:সঠিক হতে পারে, তবে সেই পথে অসীম পুনরাবৃত্তি করার কোনও ভাল উপায় নেই । আপনি কম আকর্ষণীয় স্ট্র্যাট ব্যবহার করতে বাধ্য।
udioica

22

এমএটিএল , 20 16 বাইট

y-f1X-"t[]@X@q-(

এটি অনলাইন চেষ্টা করুন! বা পরীক্ষার কেস যাচাই করুন: 1 , 2 , 3 , 4 , 5

বোনাস

স্ট্রিংটি ধীরে ধীরে সঙ্কুচিত হতে দেখতে সংশোধিত কোড (অফলাইন সংকলক):

y-f1X-"tt.3Y.XxD[]@X@q-(].3Y.XxDvx

এখানে চিত্র বর্ণনা লিখুন

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

ব্যাখ্যা

y        % Implicitly input string and char. Duplicate string onto top
-        % Subtract. Gives nonzero for chars in the input string that are
         % different from the input char
f        % Array of indices of nonzero values
1X-      % Remove 1 from that array. This gives an array of the indices of 
         % chars to be removed from the string
"        % For each
  t      %   Duplicate previous string
  []     %   Push empty array
  @      %   Push index of char to be removed. But this index needs to be 
         %   corrected to account for the fact that previous chars have
         %   already been removed...
  X@q-   %   ... So we correct by subtracting the 0-based iteration index
  (      %   Assign empty array to that position, to remove that char
         % Implicitly end for each
         % Implicitly display

3
GIFs! gifs দুর্দান্ত!
মস্তিষ্ক গাইড

20

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

w@(a:x)%c|(d,_:y)<-span(==c)x=w:(a:d++y)%c|0<1=[w]

(%)স্ট্রিংগুলির একটি তালিকা ফিরিয়ে ফাংশন সংজ্ঞায়িত করে।

ব্যাখ্যা

(%)হিসাবে বলা হয় w%c, সঙ্গে wইনপুট স্ট্রিং, এবং হচ্ছে cচরিত্র রাখা। সংক্ষেপে, এই সংজ্ঞাটি wপ্রথম চরিত্র ( a) এবং বাকী অংশ ( x) কে আলাদা করে পৃথক করে xঅন্য চরিত্রের প্রথম উপস্থিতিতে বিভাজন করে এবং সেই cচরিত্রটি বাদ পড়ার সাথে নিজেকে পুনরাবৃত্তি বলে ডাকে by

w@(a:x)%c              -- define (%) with w separated into a and x.
 |(d,_:y)<-span(==c)x  -- split x; bind the string of `c` to d, and the rest
                       -- to _:y, dropping first character and calling the rest y.
  =w:(a:d++y)%c        -- if there was a character to drop, cons w onto the
                       -- sequence gained by recursively calling (%) with that
                       -- character removed (i.e. call with a:d++y).
 |0<1=[w]              -- if nothing needed to be dropped, the result sequence is
                       -- simply the one-element list [w]

3
আপনি কোড ব্যাখ্যা করতে পারেন?
bli

1
@ ব্লি! আশা করি এই সাহায্য করবে?
dianne

14

রেটিনা , 28 27 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

;{G*1`
R1r`(?!^|.*¶?\1$)(.)

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

ব্যাখ্যা

;{G*1`

এখানে প্রচুর কনফিগারেশন রয়েছে। মঞ্চটি নিজেই সত্যই সঠিক G1`, যা ইনপুট চরিত্রটি বাদ দিয়ে কেবল প্রথম লাইন রাখে। *এটিকে একটি শুকনো রানে পরিণত করে, যার অর্থ ফলাফল (অর্থাত্ স্ট্রিংয়ের প্রথম লাইন) স্ট্রিংটি পরিবর্তন না করেই মুদ্রিত হয়। প্রোগ্রামার শেষে {স্ট্রিং পরিবর্তন হওয়া এবং ;আউটপুট প্রতিরোধ না করা পর্যন্ত রেটিনাকে একটি লুপে উভয় পর্যায় চালনা করতে বলে ।

R1r`(?!^|.*¶?\1$)(.)

এটি প্রথম অক্ষরটি অস্বীকার করে যা ক) ইনপুটটির শুরুতে নয়, খ) পৃথক ইনপুট অক্ষরের সমান নয়।


10

পিপ , 22 26 24 22 বাইট

Lv+#Paa@oQb?++oPaRA:ox

প্রথম কমান্ড-লাইন আর্গুমেন্ট হিসাবে স্ট্রিং, দ্বিতীয় হিসাবে অক্ষর নেয় T এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ইনপুট অক্ষরের উপর লুপ; চরিত্রটি যদি বিশেষ চরিত্রের সমান হয় তবে পরেরটিটিতে চলে যান; যদি তা না হয় তবে এটি মুছুন এবং স্ট্রিংটি মুদ্রণ করুন।

একটি ungolfed সংস্করণ ( a, bcmdline- র args পান; oমান দিয়ে শুরু হয় 1, xহয় ""):

P a         Print a
L #a-1      Loop len(a)-1 times:
 I a@o Q b   If a[o] string-eQuals b:
  ++o         Increment o
 E {         Else:
  a RA: o x   In-place in a, Replace char At index o with x (i.e. delete it)
  P a         Print a
 }

গল্ফিং কৌশল:

  • এর জন্য লুপ শিরোনামটি Lএকবারে মূল্যায়ন করা হয়, তাই আমরা সেখানে প্রারম্ভিক মুদ্রণ ছিঁচকে দেখতে পারি। নিম্ন-অগ্রাধিকারের #Pa-1কারণে কাজ করবে না P(এটি পার্স করা হবে #P(a-1)) তবে পরিবর্তনশীল পূর্বনির্ধারিত v+#Paব্যবহার করে আমরা এটিকে পুনর্বিন্যাস করতে পারি ।v-1
  • RA:অপারেটর নতুন মান a, তাই আমরা বদলে অভিব্যক্তি মুদ্রণ করতে পারেন একটি পৃথক থাকার Paবিবৃতি।
  • এখন if স্টেটমেন্টের দুটি শাখাই একক অভিব্যক্তি, সুতরাং আমরা ?পরিবর্তে টের্নারি অপারেটরটি ব্যবহার করতে পারি ।

10

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

স্ট্রবেরি পার্ল ব্যবহার করে আমি 35 বাইট পেয়েছি: 31 বাইট, -nEপরিবর্তে 1 এর পরিবর্তে -e, আরও 3 স্থান + -i(একক-বর্ণের ইনপুট জন্য ব্যবহৃত; লম্বা স্ট্রিংটি এসটিডিনের)।

chomp;say;s/(.)[^$^I]/$1/&&redo

তবে, আমার সন্দেহ নেই যে এটি chomp;ব্যবহার না করেই এটি করণীয় <<<, যা 29 বাইট, যদিও আমি নিজে স্ট্রবেরি ব্যবহার করে এটি পরীক্ষা করতে পারি না।

say;s/(.)[^$^I]/$1/&&redo

এভাবে:

perl -im -nE'say;s/(.)[^$^I]/$1/&&redo' <<< "example"

আপনি কেবল "ইনপুটটিতে কোনও নিউলাইন নয়" নির্দিষ্ট করতে পারেন (এটি দ্বিতীয় প্রোগ্রামটি কীভাবে কাজ করে)। আপনার যদি ইনপুটটিতে খারাপভাবে নিউলাইনগুলি অপসারণের প্রয়োজন হয় তবে -lবিকল্পটি দেখুন, যা একটি স্বয়ংক্রিয় নিউলাইন হ্যান্ডলিং মোড চালু করে যেখানে printঅতিরিক্ত নিউলাইন (এখানে অপ্রাসঙ্গিক) মুদ্রণ করে এবং -p/ -nইনপুট নতুন লাইনটি মুছে ফেলে (খুব প্রাসঙ্গিক)। এছাড়াও, এটি অবহেলা করা হয়েছে তবে আমি মনে করি আপনি ^Iঅতিরিক্ত বাইটের জন্য আক্ষরিক নিয়ন্ত্রণ -1 দিয়ে প্রতিস্থাপন করতে পারেন । পরিশেষে, আমি মনে করি s/.\K[^$^I]/redo/eযে একটি চরিত্র আরও ছোট হবে, যদিও আমি 100% নিশ্চিত নই যে এটি একটি আইনী জায়গা redo

@ আইস ৫২৩, নতুন লাইনের পরামর্শের জন্য ধন্যবাদ, তবে আমার ধারণা আমি ইতিমধ্যে বিষয়টি বেশ ভালভাবে পরিচালনা করেছি। আক্ষরিক ^I, এটি বেশিরভাগ নিয়ন্ত্রণ-বর্ণের ভেরিয়েবলের ক্ষেত্রে সত্য, তবে এটি আইআইআরসি নয়। পুনরায় \Kএবং redoসঙ্গে প্রতিস্থাপন করা /e, ধন্যবাদ! আমার যখন সুযোগ হবে তখন আমি এটি পরীক্ষা করব…।
এমএস 210

... এবং এটি কাজ করে না। @ ais523
msh210

8

পার্ল 6 ,  47 40  38 বাইট

->\a,\b{a,{S/^(."{b}"*:)./$0/}...^{$^a eq $^b}}
->\a,\b{a,{S/^(."{b}"*:)./$0/}...^&[eq]}
{$^b;$^a,{S/^(."$b"*:)./$0/}...^&[eq]}

সম্প্রসারিত:

{       # lambda with two placeholder parameters 「$a」 and 「$b」

  $^b;    # declare second parameter

  $^a,    # declare first parameter, and use it to seed the sequence

  {       # bare block lambda with implicit parameter 「$_」
    S/      # string replace and return
      ^       # beginning of string
      (       # capture into 「$0」
        .       # the first character
        "$b"*   # as many 「$b」 as possible
        :       # don't allow backtracking
      )
      .       # any character ( the one to be removed )

    /$0/      # put the captured values back into place
  }

  ...^      # repeat that until: ( and throw away the last value )

  &[eq]     # the infix string equivalence operator/subroutine

}

এর ...^পরিবর্তে কারণটি ব্যবহৃত হয়েছিল এটি ...হ'ল শেষ মানটির পুনরাবৃত্তি &[eq]না Trueহওয়া পর্যন্ত ফিরে আসবে না ।


7

05AB1E ,26 25 বাইট

¬ˆ[¦Ðg_#¬²k0Qi²ˆë¯J?,]¯J?

¬ˆ                         Put the first character into an array
  [                        While true
   ¦                       Remove the first character
    Ð                      Triplicate
     g_#                   if the string is empty, break
        ¬²k0Qi             if the first character is equal to the one specified in the input
              ²ˆ           Add it to the array
                ë          Else
                 ¯J?       Display the array
                    ,      Display the remaining string
                     ]     End while
                      ¯J?  Display the last string

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

দয়া করে নোট করুন যে ¬²k0Qএটি আবার লিখিত হতে পারে ¬²Q, তবে কিছু কারণের জন্য এটি কাজ করে না যখন বর্তমান চরিত্রটি একটি উদ্ধৃতি চিহ্ন: প্রশ্নটি বুলিয়ানের পরিবর্তে প্রকৃত স্ট্রিংটি দেয় এবং এটি একটি অসীম লুপের কারণ করে।

¯J?সদৃশ হওয়ার কারণে এই কোডটি আরও গল্ফ করা যেতে পারে । এই অংশটি লুপে স্থানান্তরিত করা অনুলিপিটি সরিয়ে ফেলবে এবং বন্ধ হওয়া বর্গাকার বন্ধনীটি ফেলে দেবে।


DˆćUΔD²KRнõ.;DXìˆ}¯¨»21 এর জন্য, তবে এটি নতুন কমান্ড ব্যবহার করে।
ম্যাজিক অক্টোপাস উরন

7

পাইথন 2, 71 66 বাইট:

f,m=input();k=f[0]
while f:a=f[0]==m;k+=f[0]*a;f=f[1+a:];print k+f

একটি সম্পূর্ণ প্রোগ্রাম। বিন্যাসে stdin মাধ্যমে 2 ইনপুট লাগে '<String>','<Char>'

এছাড়াও, এখানে 140 বাইটে একটি পুনরাবৃত্ত সমাধান রয়েছে :

Q=lambda c,p,k='',j=1,l=[]:c and Q(c[1:],p,k+c[0]*(j<2)+c[0]*(c[0]==p),j+1,l+[k+c])or'\n'.join(sorted({*l},key=l.index))+('\n'+k)*(k not in l)

এই এক ফর্ম্যাট কল করা উচিত print(Q('<String>','<Char>'))


আমি অজগর বাফ নই, তবে এই মুদ্রণটি কি কেবল একটি লাইন করা উচিত নয়?
কনর ও'ব্রায়েন

@ কনরও ব্রায়ান হ্যাঁ, আমি পোস্টটি আগে ভুল লিখেছি। এটা এখন ঠিক।
আর কাপ,

7

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

def e(i,k):
 for r in i:
  if r!=k:i=i[0]+i[1:].replace(r,'',1);print(i)

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

e('😋🥕🍎🥓🥑🥓🥑🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆','🥓')

ডায়েট করুন:

😋🥕🍎🥓🥑🥓🥑🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🍎🥓🥑🥓🥑🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥑🥓🥑🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🥑🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🥒🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🍆🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🥔🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🍆🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🥓🍅🥜🥓🥔🍅🍄🍆
😋🥓🥓🥓🥜🥓🥔🍅🍄🍆
😋🥓🥓🥓🥓🥔🍅🍄🍆
😋🥓🥓🥓🥓🍅🍄🍆
😋🥓🥓🥓🥓🍄🍆
😋🥓🥓🥓🥓🍆
😋🥓🥓🥓🥓

6

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

(s,c)=>[...t=s.slice(1)].map(d=>c!=d?s+=`
`+s[0]+(t=t.replace(d,``)):s)&&s

আমি মনে করি এটি এর জন্য ভুল আউটপুট তৈরি করে f('test cases', 's')(শেষের stssপরিবর্তে, বাদ দিয়ে tsss)। আমি মনে করি replaceএটি প্রথম ঘটনাকে সরিয়ে দেয় তাই এটি লুপের চতুর্থ পুনরাবৃত্তির tচেয়ে দ্বিতীয়টির চেয়ে প্রথমটিকে সরিয়ে দেয় । tmap
Lmis

@ লিমিস এটি উল্লেখ করার জন্য ধন্যবাদ, আমি মনে করি আমি "কেবল" একটি 7 বাইট জরিমানার জন্য আমার একটি সংস্করণ ঠিক করতে সক্ষম হয়েছি।
নিল

5

রুবি, 148 139 97 90 83 77 62 বাইট

a,c=$*;p s=""+a;i=1;while d=s[i];(d!=c)?(s[i]="";p s):i+=1;end

এই বিনিময়টিতে অপেশাদার কোডটি গ্রহণ করা হয়েছে কিনা তা নিশ্চিত নয় তবে আমি গল্ফ কোড করা শিখতে আগ্রহী যদিও আমি এতে ভয়ানক, এই প্রোগ্রামটি এখানে অন্যদের মতো ছোট দেখায় কীভাবে সহায়তা করব?

সম্পাদনা করুন:

পি সঙ্গে প্রতিস্থাপন puts

এক টন হোয়াইটস্পেস সরিয়ে ফেলা হয়েছে এবং গম উইজার্ডকে সঠিকভাবে ধন্যবাদ বাইটস

Challenger5 ধন্যবাদ থেকে গিয়েছিলাম s=gets.chop;c=gets.chop;থেকেs,c=gets.chop,gets.chop;

প্রতিস্থাপিত thenসঙ্গে ;এবং gets.chopসঙ্গে gets[0]ধন্যবাদ Mhutter!

কমান্ড লাইন ভেরিয়েবল হিসাবে ইনপুট নেওয়া এখন, যেমন। prog.rb helloworld l

প্রতিস্থাপন jeroenvisser101 দ্বারা অনেক উন্নতি ধন্যবাদ a=s.dupদিয়ে s=""+aআর যদি বিবৃতি পূর্ববর্তী if s[i]!=c;s[i]="";p s;else i+=1;endসঙ্গে (d!=c)?(s[i]="";p s):i+=1;বিশাল উন্নতি!


সাইটে স্বাগতম! আমি রুবি গল্ফিংয়ে বিশেষজ্ঞ নই তবে মনে হচ্ছে আপনার অতিরিক্ত সাদা জায়গা আছে। বিশেষত =এস এর আশেপাশে । আরও বিস্তৃত টিপসের জন্য আপনি আমাদের টিপস পৃষ্ঠাটি দেখতে পারেন ।
শ্রুতচিলিজম ও'জাইক

বাইটগুলি অপসারণের সহজতম উপায় হ'ল অতিরিক্ত শ্বেতস্থান দূর করা s=gets.chomp। আপনি রুবিতে এটি করতে পারবেন কিনা তা নিশ্চিত নই তবে পাইথনের মতো কয়েকটি ভাষায় আপনি একাধিক অ্যাসাইনমেন্টকে একটি বিবৃতিতে মিশ্রিত করতে পারেন, যেমন a,b,c=0,1,2
জুলাই

আরে হোয়াইটস্পেস সম্পর্কে রুবি ডকুমেন্টেশন পড়ার জন্য টিপসের জন্য ধন্যবাদ এবং অনুধাবন করা সেমিকোলনগুলি এগুলি শেষের বিবৃতিগুলির জন্য প্রতিস্থাপন করতে পারে: ') এস = গেস.চপ এবং সি = গেস.চোপ আমি করতে পারছি না, সি = গেস.চপ বা অন্য কিছু দুর্ভাগ্যক্রমে দুর্ভাগ্যক্রমে তারা কোডের বৃহত্তম অংশ এবং আমি সেই দীর্ঘ বিবৃতিটি মুছে ফেলতে চাই ..
বেন হিলি

আপনি এখনও বিশেষ করে কিওয়ার্ড আগে কিছু অতিরিক্ত স্পেস আছে ( do, thenএবং end), এবং চতুর্থ প্রায় =
শ্রুতচিলিজম ও'জাইক

দেখে মনে হচ্ছে আপনি বাইট গণনায় নিজেকে সংক্ষিপ্ত পরিবর্তন করছেন। আমি কেবল 90 বাইট গণনা করি।
শ্রুতচিলিজম ওজাইক

4

c90, 129 125 বাইট

সাদা স্থান সহ:

main(q, x)
{
    for (char **v = x, *a = v[1], *b = a, *c;*b++;)
        for (c = a; c == a | *c == *v[2] && *b != *v[2] && putchar(*c),
            ++c != b || *b != *v[2] && !puts(b););
}

সাদা স্থান ব্যতীত:

main(q,x){for(char**v=x,*a=v[1],*b=a,*c;*b++;)for(c=a;c==a|*c==*v[2]&&*b!=*v[2]&&putchar(*c),++c!=b||*b!=*v[2]&&!puts(b););}

ungolfed:

#include <stdio.h>
int main(int argc, char **argv)
{
    char *a = argv[1];
    for (char *b = a + 1; *b; b++) {
        if (*b == *argv[2]) {
            continue;
        }
        putchar(*a);
        for (char *c = a + 1; c != b; c++) {
            if (*c == *argv[2]) {
                putchar(*c);
            }
        }
        puts(b);
    }
}

এটি স্ট্রিংয়ের শুরুতে একটি পয়েন্টার নেয়, এবং স্ট্রিংয়ের শেষ না হওয়া পর্যন্ত এই পয়েন্টারটি পুনরাবৃত্তি করে লুপ করে। লুপের মধ্যে এটি প্রথম অক্ষরটি মুদ্রণ করে, তারপরে দ্বিতীয় আর্গুমেন্টের যে কোনও উদাহরণ এটি স্ট্রিং এবং পয়েন্টারের শুরুতে খুঁজে পায়। এর পরে, এটি পয়েন্টারে কল রাখে, বাকী স্ট্রিংটি মুদ্রণ করে।

এটি অবশ্যই এমন সিস্টেমে সংকলন করতে হবে যেখানে মাপের (int) == আকারের (চর *)। অন্যথায় +3 বাইট।

আমি এখানে প্রথমবারের মতো কোড গল্ফ করার চেষ্টা করেছি, তাই আমি নিশ্চিত যে কিছু অপ্টিমাইজেশন করা হবে।


3

ডায়ালগ এপিএল , 27 বাইট

{×i←⊃1+⍸⍺≠1↓⎕←⍵:⍺∇⍵/⍨i≠⍳≢⍵}

বাদ দেওয়া অক্ষর, এটি প্রাথমিক স্ট্রিং

মুদ্রণ যুক্তি; প্রথম চরের পরে iপ্রথম অ- সূচকের সন্ধান করুন ; যদি পাওয়া যায়, iঅপসারণের সাথে পুনরাবৃত্তভাবে কল করুন


3

গণিত, 64 বাইট

Most@FixedPointList[StringReplace[#,b_~~Except@a:>b,1]&,a=#2;#]&

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


আমি অবশ্যই ব্যবহার শুরু করতে যাচ্ছি FixedPointList
নেজেনিসিস

3

পিএইচপি, 88 84 86 85 82 81 78 বাইট

@ ইসমাইল মিগুয়েলকে 1 বাইট সংরক্ষিত ধন্যবাদ, 3 বাইট @ ইউজার59178, ইউজার ইউজার 17178 দ্বারা অনুপ্রাণিত 3 বাইট

while($b=substr("$argv[1]\n",$i++))$a>""&$b[0]!=$argv[2]?print$a.$b:$a.=$b[0];

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়; সাথে চালানোphp -r <code> '<string>' <character>


  • অন্তর্নিহিত চূড়ান্ত মুদ্রণের জন্য ইনপুটটিতে একটি নতুন লাইন যুক্ত করে।
    এটি কোড 4 5 বাইট যোগ করে , কিন্তু আউটপুট এবং একটি অতিরিক্ত সংরক্ষণ করে echo$a;

1
$argv[1]."\n"হিসাবে লেখা যেতে পারে"$argv[1]\n"
ইসমাইল মিগুয়েল

1
হিসাবে $bপায় একটি newline যতদিন এটা দৈর্ঘ্য> = 1. হয়েছে যেমন যেমন এটা যোগ করা এটা সবসময় truthy দ্বারা হবে ""<অপ্রয়োজনীয়।
ব্যবহারকারী59178

আপনি substr()বরাদ্দ করার পরিবর্তে একটি টের্নারি ব্যবহার করে অন্য বাইট সংরক্ষণ করতে পারেন $b
ব্যবহারকারী59178

@ ব্যবহারকারী59178 আমি আপনাকে সত্যিই সেখানে ধরতে পারি নি: substrশর্ত এবং দশা উভয়ের জন্য আমার ফলাফলের প্রয়োজন print; সুতরাং আমি এটি কোথাও নিযুক্ত করা উচিত। তবে আপনি আমাকে অনুপ্রাণিত করেছেন।
টাইটাস

আমি বলতে চাইছিলাম for(;$b=substr($b?:".$argv[1]\n",1);)তবে আপনার এখন যা আছে তা আরও ভাল।
ব্যবহারকারী59178

3

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

ধন্যবাদ @ কেডকে 2 বাইটের জন্য!
ধন্যবাদ ইমেনাকে 1 বাইটের জন্য!

¬UDvy²k0Êiy¡¬s¦yý«Xs«=¦

সিপি -1222 ব্যবহার করে এনকোডিং । এটি অনলাইন চেষ্টা করুন!

y²k0Ê হতে পারে y²Êকিন্তু" গোলমেলে।

এটি সম্ভবত আরও গল্ফ করা যেতে পারে কারণ «দুবার পুনরাবৃত্তি করা হয়েছে। আপনার যদি কোনও পরামর্শ বা এটিকে আরও গল্ফ করার উপায় থাকে তবে দয়া করে একটি মন্তব্য দিন।


3

জাভা 10, 155 140 139 124 বাইট

c->s->{var r=s+"\n";for(int i=0;++i<s.length();)if(s.charAt(i)!=c)r+=(s=s.substring(0,i)+s.substring(i--+1))+"\n";return r;}

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

ব্যাখ্যা:

c->s->{          // Method with character and String parameters and String return-type
  var r=s+"\n";  //  Result-String, starting at the input-String with trailing new-line
  for(int i=0;++i<s.length();)
                 //  Loop over the characters of the String, skipping the first
    if(s.charAt(i)!=c)
                 //   If the current character and the input-character are equal
      r+=(s=s.substring(0,i)+s.substring(i--+1))
                 //     Remove this character from the String `s`
         +"\n";  //     And append the new `s` with trailing new-line to the result-String
  return r;}     //  Return the result-String

পুরানো 139 বাইট পুনরাবৃত্ত উত্তর:

void c(String s,int c){System.out.println(s);for(int i=1;i<s.length();)if(s.charAt(i++)!=c){c(s.substring(0,i-1)+s.substring(i),c);break;}}

-1 বাইটস @ ইউজিনকে ধন্যবাদ । (পরের বার অন্য কারও পোস্ট সম্পাদনা করার পরিবর্তে একটি মন্তব্য করুন, দয়া করে।)

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

ব্যাখ্যা:

void c(String s,int c){     // Method with String and integer parameters and no return-type
  System.out.println(s);    //  Print the input-String with trailing new-line
  for(int i=1;i<s.length();)//  Loop over the characters of the String, skipping the first
    if(s.charAt(i++)!=c){   //   If the current character and the input-character are equal
      c(s.substring(0,i-1)+s.substring(i),c); 
                            //    Remove this character, and do a recursive call
      break;}}              //    And stop the loop

চর []] নিয়ে বিরক্ত না করা কি খুব ছোট হবে না এবং কেবল s.charAt () ব্যবহার করবেন?
dpa97

@ dpa97 আহ, আপনি পুরোপুরি ঠিক বলেছেন। আমি প্রথমে একটি ফোরচ লুপ ব্যবহার করেছি, তবে এটিকে নিয়মিত ফর লুপে পরিবর্তন করেছি। চর-অ্যারে অপসারণ করতে ভুলে গেছেন। ধন্যবাদ।
কেভিন ক্রুইজসেন

2

সি #, 122 117 112 বাইট

IEnumerable F(string s,char c){for(int i=0;i<s.Length;++i)if(i<1||s[i]!=c)yield return i>0?s=s.Remove(i--,1):s;}

অসমাপ্ত:

public IEnumerable F(string s, char c) {
    for (int i = 0; i < s.Length; ++i) {
        if (i < 1 || s[i] != c)
            yield return i > 0 ? s = s.Remove(i--, 1) : s;
    }
}

স্ট্রিংয়ের একটি সংগ্রহ প্রদান করে।


1
জেনেরিক সংগ্রহ নয় ব্যবহার করে দুর্দান্ত কৌশল। তবে এটি কার্যকর হবে না, যদি শেষ চরটি বিশেষ চর না হয় c। সেক্ষেত্রে লুপ চিরতরে কাজ করার চেষ্টা করবে।
পালদির

1
@ পালদিয়ার উফস, আপনি ঠিক বলেছেন! এই মুহুর্তে আমার মস্তিষ্ক ঘুরিয়ে, আরও ভাল (এবং খাটো!) উপায় খুঁজে পেয়েছে।
মনো

আপনি 2 বাইট সংরক্ষণের জন্য লুপের প্রথম বন্ধনী সরাতে পারেন।
PmanAce

@মানস দুঃখিত, আপনার অর্থ কি? কোন বন্ধনী?
মনো

সার্বজনীন আইইনুমেবল এফ (স্ট্রিং গুলি, চর সি) {এর জন্য (ইনট আই = ০; আই <এস। দৈর্ঘ্য; ++ i) যদি (i <1 || গুলি [i]! = গ) ফলন i> 0 হয়? s = s. অপসারণ (i--, 1): গুলি; }
PmanAce

2

টিএসকিউএল, 127 বাইট (পরিবর্তনশীল সংজ্ঞা বাদে)

DECLARE @1 VARCHAR(100)='codegolf.stackexchange.com'
DECLARE @2 CHAR(1) = 'o'

DECLARE @ char=LEFT(@1,1)WHILE patindex('%[^'+@2+']%',@1)>0BEGIN SET @1=STUFF(@1,patindex('%[^'+@2+']%',@1),1,'')PRINT @+@1 END

বিন্যাসকৃত:

DECLARE @1 VARCHAR(100) = 'codegolf.stackexchange.com'
DECLARE @2 CHAR(1) = 'o'
DECLARE @ CHAR = LEFT(@1, 1)

WHILE patindex('%[^' + @2 + ']%', @1) > 0
BEGIN
    SET @1 = STUFF(@1, patindex('%[^' + @2 + ']%', @1), 1, '')

    PRINT @ + @1
END

ভাল ব্যবহার patindex, কিন্তু alphabetউদাহরণ বেশ সঠিক বলে মনে করে না, এটি প্রদর্শন করা হয় aaphabetমাধ্যমে নিচে aaa। এটি উল্লেখ করার মতো একটি কেস-সংবেদনশীল কোলেশন সহ কোনও সার্ভার বা ডাটাবেসে চালানো উচিত, অন্যথায় upperCASEউদাহরণটিও ব্যর্থ হয়, ueEএটি তার চূড়ান্ত সারিতে প্রদর্শিত হয়।
ব্র্যাডিসি

2

সি #, 135 138 :( 137 বাইট

Golfed:

IEnumerable<string>F(string s,char c){int i=1,l;for(;;){yield return s;l=s.Length;while(i<l&&s[i]==c)i++;if(i==l)break;s=s.Remove(i,1);}}

Ungolfed:

    IEnumerable<string> F(string s, char c)
    {
        int i = 1, l;

        for (;;)
        {
            yield return s;

            l = s.Length;

            while (i < l && s[i] == c)
                i++;

            if (i == l)
                break;

            s = s.Remove(i, 1);
        }
    }

ফাংশন স্ট্রিংয়ের সংগ্রহ প্রদান করে।

EDIT1: @psycho লক্ষ্য করেছেন যে অ্যালগরিদম সঠিকভাবে প্রয়োগ করা হয়নি।

EDIT2: এর জন্য ভেরিয়েবল তৈরি করা হয়েছে s.Length। একটি বাইট @LethalCoder ধন্যবাদ ধন্যবাদ সংরক্ষণ করেছে।


1
ইনপুট চরটি একাধিকবার একাধিকবার উপস্থিত থাকলে কাজ করবে না। প্রাক্তন: পরিবর্তে codeegolf eদিতে ceহবে cee
মনো

@ সাইচো আমি এগুলির ifসাথে অদলবদল করেছি whileএবং এটি কাজ করে।
পালদির

উত্তম ! তবে এটি খাটো হতে পারে। আমি আমার নিজের পোস্ট করব!
মনো

1
একটি s.Lengthবাইট সংরক্ষণ করার জন্য একটি ভেরিয়েবল তৈরি করুন :int i=1,l;for(;;){yield return s;l=s.Length;while(i<l&&s[i]==c)i++;if(i>=l)break;s=s.Remove(i,1);}}
TheLethalCoder

2

পাইথন 2 - 65 73 বাইট

lambda s,c:[s[0]+c*s[1:i].count(c)+s[i+1:]for i in range(len(s))]

এবং একটি 76 বাইট পুনরাবৃত্তির সমাধান, কারণ মজার চেয়ে দীর্ঘতর হওয়া সত্ত্বেও, আমি এটি আরও ভাল পছন্দ করি:

f=lambda s,c,i=1:s[i:]and[[s]+f(s[:i]+s[i+1:],c,i),f(s,c,i+1)][s[i]==c]or[s]

2

রেকেট 194 বাইট

(let p((s s)(n 1)(t substring)(a string-append))(displayln s)(cond[(>= n(string-length s))""]
[(equal? c(string-ref s n))(p(a(t s 0 n)(t s n))(+ 1 n)t a)][else(p(a(t s 0 n)(t s(+ 1 n)))n t a)]))

Ungolfed:

(define (f s c)
  (let loop ((s s)
             (n 1))
    (displayln s)
    (cond
      [(>= n (string-length s))""]
      [(equal? c (string-ref s n))
       (loop (string-append (substring s 0 n) (substring s n))
             (add1 n))]
      [else
       (loop (string-append (substring s 0 n) (substring s (add1 n)))
             n)])))

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

(f "Test cases" #\s)
(f "codegolf.stackexchange.com" #\e)

আউটপুট:

Test cases
Tst cases
Tst cases
Ts cases
Tscases
Tsases
Tsses
Tsses
Tsss
Tsss
""
codegolf.stackexchange.com
cdegolf.stackexchange.com
cegolf.stackexchange.com
cegolf.stackexchange.com
ceolf.stackexchange.com
celf.stackexchange.com
cef.stackexchange.com
ce.stackexchange.com
cestackexchange.com
cetackexchange.com
ceackexchange.com
ceckexchange.com
cekexchange.com
ceexchange.com
ceexchange.com
ceechange.com
ceehange.com
ceeange.com
ceenge.com
ceege.com
ceee.com
ceee.com
ceeecom
ceeeom
ceeem
ceee
""

2

জাভাস্ক্রিপ্ট (ES6), 64 69

নতুন লাইনের সাথে একটি একক স্ট্রিং ফিরিয়ে দেওয়া

s=>c=>[...s].map((x,i,z)=>i&&x!=c&&(z[i]='',s+=`
`+z.join``))&&s

F=
s=>c=>[...s].map((x,i,z)=>i&&x!=c&&(z[i]='',s+=`
`+z.join``))&&s
  

function update() {
  var s=S.value,c=C.value[0]
  O.textContent=F(s)(c)
}

update()
<input id=S value='Hello world!' oninput='update()'>
<input id=C value='!' oninput='update()'>
<pre id=O></pre>


এতে সামান্য অদ্ভুত যে এটি দুটি আর্গুমেন্ট না নিয়ে একটি যুক্তি নেয় এবং তারপরে অন্য ফাংশনটি দেয় যেখানে আপনাকে দ্বিতীয় যুক্তিটি দিতে হবে। আমি নিশ্চিত নই যে এটি প্রত্যাশিত আচরণ ছিল।
এমটি0

@ এমটি0 আমি বিজোড় তবে এটি 2 টি আর্গুমেন্ট সহ কোনও ফাংশনের জন্য গৃহীত হয়েছে, এটি 1 বাইট সংরক্ষণ করে। আমি খুঁজে পেলে আপনাকে একটি রেফারেন্স দেব। এটি মেটা কোডেগল্ফ.স্ট্যাককেক্সচেঞ্জ / আ / 27৪৪27/21348
edc65

দুর্দান্ত কৌশল, আমি বুঝতে পারি নি যে তৃতীয় যুক্তিকে সংশোধন .mapকরাটি ছিল संचयी। আমি দেখেছি .map().filter()এবং ভেবেছিলাম "এটি একটি দুর্দান্ত অ্যারে উপলব্ধি তৈরি করবে!", তবে অ্যারে বোঝার মধ্যে সূচির অভাব এটি মেরে s=>c=>[for(x of(i=0,z=[...s]))if(--i&&x!=c)(z[~i]=~i?'':x,z.join``)]
ফেলেছিল

1
প্রকৃতপক্ষে, ([...z],c,i=0)=>[for(x of z)if(--i&&x!=c)(z[~i]=~i?'':x,z.join``)]
প্যারামগুলি পুনরায় সাজিয়ে

@ETH প্রোডাকশনগুলি বিশ্বাস করতে পারে না আমি আবার বাইট গণনায় ভুল ছিল । যাইহোক, আমাকে এটি সম্পর্কে আবার
ভাবিয়ে দেওয়ার

2

সুইফট 3 - 151 147 বাইট

গল্ফিংয়ের জন্য সুইফট আদর্শ ভাষা নয়, বিশেষত যখন স্ট্রিং ইনডেক্সিংয়ের সাথে সম্পর্কিত। এটিই আমি করতে পারি সেরা:

func c(a:String,b:String){print(a);var q=Array(a.characters),i=1;while i<q.count{if "\(q[i])" != b{q.remove(at:i);c(a:String(q),b:b);break};i=i+1}}

দুর্ভাগ্যক্রমে, সুইফ্টের চারপাশে স্পেস প্রয়োজন !=(তবে এর জন্য নয় ==), এবং সুইফট 3 ++অপারেটরটি ফেলে দেয় । এই উভয়ের কৌশলটি হ'ল একটি অক্ষর অ্যারেতে রূপান্তর করা যা পূর্ণসংখ্যাকে সূচক তৈরি করতে সহায়তা করে এবং একটি অক্ষরের স্ট্রিং ইন্টারপোলেশন ব্যবহার করে একটিকে আবার রূপান্তর করতে পারে characterString ("\(c)" ) এ ।

Ungolfed:

func c(a:String, b:String) {
    print(a)
    var q = Array(a.characters)
    var i = 1
    while i < q.count {
        if "\(q[i])" != b {
            q.remove(at:i)
            c(a: String(q), b: b)
            break
        }
        i=i+1
    }
}

পূর্ববর্তী, পুনরাবৃত্তি সমাধান

func c(a:String,b:String){var q=Array(a.characters),e={q.removeFirst()},z="\(e())";print(a);while !q.isEmpty{"\(e())"==b ? z=z+b : print(z+String(q))}}
func c(a:String, b:String) {
    var q = Array(a.characters)
    var z = "\(q.removeFirst())"
    print(a)
    while !q.isEmpty {
        if "\(q.removeFirst())" == b {
            z = z + b
        }else{
            print(z + String(q))
        }
    }
}

পিপিসিজিতে আপনাকে স্বাগতম! কোডের শেষের দিকে থাকা কিছু শ্বেতস্থান কি সরানো যেতে পারে?
ETH প্রোডাকশনগুলি

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

2

পাইকে, 26 19 17 বাইট

jljjhF3<Q/Q*jih>s

এখানে চেষ্টা করুন!

                  - Q = input
j                 - j = input_2
 ljjhF3           - for (i, j, j[0]) for i in range(len(j))
       <          -     j[:i]
        Q/        -    ^.count(Q)
          Q*      -   ^*Q
                s -  sum(j[0], ^, V)
            jih>  -   j[i+1:]

আপনি একটি ব্যাখ্যা যোগ করতে পারেন?
ফল ফলবান

@ চ্যালেঞ্জার 5 করেছেন এবং 2 বাইট গল্ফ করেছেন!
নীল

1

গণিত, 78 বাইট

মার্টিন ইন্ডার, তুমি প্রায় প্রথম: পি

(i=2;a={c=#};While[i<=Length@c,If[c[[i]]==#2,i++,c=c~Drop~{i};a=a~Append~c]];a)&

নামহীন ফাংশন; একটি Whileলুপ এবং কয়েকটি অস্থায়ী ভেরিয়েবলের সাথে সরাসরি বাস্তবায়ন ।


ওহ, কমন, আমরা দুজনেই জানি যে ম্যাথমেটিকা ​​অপরিহার্য নয়
LegionMammal978

1
<একটি সাদা পতাকা waves
গ্রেগ মার্টিন

1

জাভাস্ক্রিপ্ট ES6, 89 বাইট

আমি ভেবেছিলাম এটি একটি সহজ চ্যালেঞ্জ হবে তবে আমি নিশ্চিত যে আমি এখানে কিছু মিস করছি ..

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

(c,i=1,r)=>f=a=>a[i]?a[i++]==c?f(a):f(g=a.slice(0,i-1)+a.slice(i--),(r=r||[a]).push(g)):r

F=
  (c,i=1,r)=>f=a=>a[i]?a[i++]==c?f(a):f(g=a.slice(0,i-1)+a.slice(i--),(r=r||[a]).push(g)):r

G=_=>A.value.length>1 && (O.innerHTML = F(E.value)(A.value).join`
`)

G()
<input id=A oninput='G()' value='alphabet'>
<input id=E oninput='G()' value='a'>
<pre id=O>


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