একটি স্ট্রিং টগল করুন


15

চ্যালেঞ্জটি কেবল অন্য স্ট্রিংয়ের মধ্যে একটি স্ট্রিং টগল করা জড়িত।

ব্যাখ্যা

যদি টগল স্ট্রিংটি মূল স্ট্রিংয়ের একটি স্ট্রিং থাকে তবে মূল স্ট্রিং থেকে টগল স্ট্রিংয়ের সমস্ত উদাহরণ সরিয়ে ফেলুন ; অন্যথায়, মূল স্ট্রিংয়ের শেষে টগল স্ট্রিং যুক্ত করুন ।

বিধি

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

উদাহরণ

function toggle(main_string, toggle_string){ ... }

toggle('this string has 6 words ', 'now') 
=> 'this string has 6 words now'

toggle('this string has 5 words now', ' now') 
=> 'this string has 5 words'

টেস্টের কেস

'','a'          => 'a'
'a','a'         => ''

'b','a'         => 'ba'
'ab','a'        => 'b'

'aba','a'       => 'b'
'ababa', 'aba'  => 'ba'

2
@ কেনেনিলাউ এটি 3 ঘন্টা সব জন্য স্যান্ডবক্সে ছিল। সুপারিশটি 2 দিন।
মরগান থ্র্যাপ

9
প্রস্তাবটি আসলে 72২ ঘন্টা । মূল পৃষ্ঠায় স্যান্ডবক্সের তুলনায় অনেক বেশি দৃশ্যমানতা রয়েছে, সুতরাং এখানে আরও কমেন্টের গ্যারান্টি দেওয়া হয়েছে। এটি বলেছিল, এটি কোনও খারাপ চ্যালেঞ্জ নয়, কয়েকটি কয়েকটি মোটামুটি কিনারা রয়েছে।
অ্যাডমবর্কবার্ক

2
সুতরাং আপনি সমস্ত অ-ওভারল্যাপিং দৃষ্টান্তগুলি প্রতিস্থাপন করবেন ?
সোয়েভার

1
@ জাকুব হ্যাঁ, আমার মনে হয় এমন চিঠি এবং সংখ্যার মধ্যে আমার এটি সীমাবদ্ধ করা উচিত।
nobe4

1
না, আমার মনে হয় ননালফ্যানুয়ামিক্সগুলিকে অনুমতি দিন: এটি সেভাবে আরও চ্যালেঞ্জিং।
msh210

উত্তর:



11

জাভা 8, 80 70 65 34 বাইট

t->m->m==(m=m.replace(t,""))?m+t:m

সম্ভবত এখনও আমার সংক্ষিপ্ততম জাভা 'কোডগল্ফ' ..
মন্তব্যগুলি থেকে কিছু সহায়তার সাথে এক্সডি ..;)

ব্যাখ্যা:

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

t->m->                     // Method with two String parameters and String return-type
                           // (NOTE: Takes the toggle `t` and main `m` in reversed order)
  m==(m=m.replace(t,""))?  //  If `m` equals `m` with all `t`-substrings removed:
                           //  (And set `m` to `m` with all `t`-substrings removed)
   m+t                     //   Output this new `m` concatted with `t`
  :                        //  Else:
   m                       //   Output just this new `m`

1
আপনি ifএকটি টার্নারি পরিবর্তন করে বেশ কয়েকটি সংরক্ষণ করতে সক্ষম হওয়া উচিত । অন্য কিছু না হলে, এটি "অতিরিক্ত" থেকে মুক্তি পাবে return
জিওবিটস

@ জিওবিটস আহ, অবশ্যই .. আমি এতটাই উত্সাহী ছিলাম যে একটি একক পদ্ধতিতে 'লো' বাইট গণনা ছিল (জাভা 'কোডগল্ফিংয়ের ক্ষেত্রে) যে আমি আইএফ এবং রিটার্নের জন্য সবচেয়ে স্পষ্ট কোডগল্ফিংয়ের একটি ভুলে গিয়েছিলাম ..>।> ধন্যবাদ, সম্পাদিত।
কেভিন ক্রুইজসেন 20'16

1
আপনি নিয়মিত ফাংশনের পরিবর্তে ল্যাম্বদা ব্যবহার করে আরও কয়েকটি বাইট সংরক্ষণ করতে পারেন।
ডেনকার

return m=m.replace(t,"")?m+t:m;
লিকি নুন

2
m==(m=m.replace...
ফাঁস নুন

8

এমএটিএল, 11 বাইট

yyXf?''YX}h

অনলাইনে চেষ্টা করে দেখুন!

সমস্ত পরীক্ষার কেস

ব্যাখ্যা

            % Implicitly grab the main string
            % Implicitly grab the toggle string
y           % Copy the main string
y           % Copy the toggle string
Xf          % Check to see if the toggle string is present in the main string
?           % If so
    ''YX    % Replace with an empty string
}           % else
    h       % Horizontally concatenate the two strings
            % Implicit end of if...else
            % Implicitly display the result


4

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

(s,t,u=s.split(t).join``)=>u==s?s+t:u

3

পাইকে, 14 বাইট

DX{iIXRk:)i!IJ

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

পাইকের কোনও elseকাঠামো নেই বলে দেওয়া হয়েছে বলে আমি মনে করি এটি বেশ যুক্তিসঙ্গত স্কোর

ব্যাখ্যা:

D              -    Duplicate input
 X             -   a,b = ^
  {            -  a in b
   i           - i = ^
    I          - if i:
     XRk:      -  a = b.replace(a,"")
         i!I   - if not i:
            J  -  a = "".join(input)
               - print a

3

সিজেম, ৯

q~:B/2Be]

এটি অনলাইনে চেষ্টা করুন। 1 টি বাইট কেটে দেওয়ার জন্য জিমি 23013 ধন্যবাদ

ব্যাখ্যা:

q~     read and evaluate the input (given as 2 quoted strings)
:B     store the toggle string in B
/      split the main string by the toggle string
2Be]   pad the array of pieces to the right with B, up to length 2 (if shorter)

1
9 বাইট: q~:B/2Be]
জিমি 23013

2

জাভাস্ক্রিপ্ট (ECMAScript 6): 47 বাইট

(a,b)=>(c=a.replace(RegExp(b,'g'),''))!=a?c:a+b

5
টগল স্ট্রিংয়ে বিশেষ অক্ষর থাকলে এটি ব্যর্থ হতে পারে। উদাহরণস্বরূপ, পরিবর্তে ("a", ".")ফিরে আসে । """a."
ডেনিস

2

রেটিনা , 38 31 বাইট

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

(.+)(?=.*¶\1$)
·
1>`·|¶.+

T`·¶

পেছনের লাইনফিডটি তাৎপর্যপূর্ণ। ইনপুট ফর্ম্যাট উভয় স্ট্রিং একটি লাইনফিডের সাথে পৃথক করা হয়।

এটি অনলাইন চেষ্টা করুন! প্রথম লাইনটি একবারে বেশ কয়েকটি পরীক্ষার কেস চালানোর অনুমতি দেয় (পরীক্ষার স্যুটে, ব্যবহারের জন্য; স্ট্রিং এবং লাইনফিডগুলি পৃথক পরীক্ষার ক্ষেত্রে পৃথক করতে ব্যবহার করুন; প্রথম লাইন রূপান্তরটির যত্ন নেয়)।

ব্যাখ্যা

(.+)(?=.*¶\1$)
·

এই প্রথম পদক্ষেপে আমরা মূল স্ট্রিংয়ে টগল স্ট্রিংয়ের সমস্ত উপস্থিতি প্রতিস্থাপন করি ·। আমাদের এই চিহ্নিতকারীগুলি সন্নিবেশ করা প্রয়োজন যাতে কোনও বিকল্প প্রতিরোধ ঘটেছিল কিনা তা আমরা পরে নির্ধারণ করতে পারি।

1>`·|¶.+

এটি অন্য একটি বিকল্প যা একটি ·চিহ্নিতকারীকে সরিয়ে দেয় বা দ্বিতীয় লাইন (পৃথকীকরণের লাইনফিড সহ)। যাইহোক, এটি 1>একটি সীমা যা এর অর্থ হল প্রথম বিবেচনার পরে কেবল মিল হয় । অতএব, যদি টগল স্ট্রিংটি মূল স্ট্রিংয়ের মধ্যে না ঘটে, আমরা কোনও সন্নিবেশ করিনি ·, সুতরাং দ্বিতীয় লাইনটি প্রথম ম্যাচ হবে এবং সরানো হবে না। অন্যথায়, আমরা প্রথম চিহ্নিতকারী ছাড়া সমস্ত সহ দ্বিতীয় লাইনটি সরিয়ে ফেলি।

T`·¶

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


2

পাইথন (3.4): 55 54 47 44 বাইট

lambda m,t:m.replace(t,'')if t in m else m+t

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

toggle=lambda m,t:m.replace(t,'')if t in m else m+t
print('', 'a', toggle('','a'))
print('a', 'a', toggle('a','a'))
print('b', 'a', toggle('b','a'))
print('ab', 'a', toggle('ab','a'))
print('aba', 'a', toggle('aba','a'))
print('ababa', 'aba', toggle('ababa','aba'))

টেস্ট আউটপুট

 a a
a a
b a ba
ab a b
aba a b
ababa aba ba

ডিএফ ব্যবহার করা দীর্ঘতর হবে কারণ আপনাকে রিটার্নের স্টেটমেন্ট ব্যবহার করতে হবে, যদি এটি রিটার্ন ব্যতীত সম্ভব হয় তবে এটি 2 বাইট সংরক্ষণ করত যেহেতু ফাংশনটির সুস্পষ্ট ঘোষণার প্রয়োজন নেই (দুঃখিত আমি এটি জানতাম না) 7 বাইট সংরক্ষণ করা হয়েছিল।


চমৎকার উত্তর! আমাদের নিয়মের জন্য, ফাংশনটির জন্য আপনার কোনও নামের প্রয়োজন নেই। সুতরাং আপনি মুছে ফেলতে পারেন toggle=
R

আমি ঠিক বুঝতে পেরেছি, টেস্টটি কাজ না করে আমার টেস্টটি কাজ করবে না toggle=work
levanth

হ্যাঁ, এটি toggleপরীক্ষা করার জন্য প্রয়োজন। কিন্তু আপনি শুধুমাত্র প্রয়োজন গণনা থেকে lambda m,t:যায়।
Rɪᴋᴇʀ

আমি ভুল না হলে আপনি 3 বাইট সংরক্ষণ করতে পরিবর্তন m+''+tকরতে m+tপারেন।
শার্লক

আপনি ঠিক বলেছেন, আমি m+' '+tতাদের মধ্যে একটি স্পেস প্রবেশ করতে শুরু করেছিলাম, তবে আবার বিবরণটি পড়ার পরে আমি হোয়াইট স্পেস মুছে ফেলেছি তবে '' এবং +
স্পেসটি

2

সি #, 63

string F(string s,string t)=>s.Contains(t)?s.Replace(t,""):s+t;

জাভা এর চেয়ে ভাল :)

পরীক্ষার কোড:

public static void Main()
{
    Console.WriteLine(F("", "a"));
    Console.WriteLine(F("a", "a"));
    Console.WriteLine(F("b", "a"));
    Console.WriteLine(F("ab", "a"));
    Console.WriteLine(F("aba", "a"));
    Console.WriteLine(F("ababa", "aba"));
    Console.ReadLine();
}

আউটপুট:

a

ba
b
b
ba

2

Pyth, 13 11 10 বাইট

?/Qz:Qzk+z

পরীক্ষা স্যুট.

ইনপুট ফর্ম্যাট: উদ্ধৃতিতে প্রথম স্ট্রিং, উদ্ধৃতি ব্যতীত দ্বিতীয় স্ট্রিং।

এটিও 10 বাইট:

?tJcQzsJ+z

পরীক্ষা স্যুট.

এটি 11 বাইট:

pscQz*!}zQz

পরীক্ষা স্যুট.

পূর্ববর্তী 13-বাইট সমাধান:

?:IQzk+Qz:Qzk

পরীক্ষা স্যুট.


1
এছাড়াও 11 বাইট:?}zQ:Qzk+Qz
ব্লু

2

জल्फ, 12 বাইট

?=iγρiIE+iIγ

বা, যদি আমাদের অবশ্যই রেজেক্স-সংবেদনশীল চরগুলি অন্তর্ভুক্ত করতে হয়:

?=iγρiLeIE+iIγ

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

ব্যাখ্যা

?=iγρiIE+iIγ    if(i === (γ = i.replace(I, E))) alert(i + I); else alert(γ);
  i                i
 =                   ===
    ρ                          .replace( ,  )
     iI                       i         I 
       E                                   E
   γ                     (γ =                )
?               if(                           )
        +iI                                     alert(i + I);
                                                              else
           γ                                                       alert(γ);

2

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

(m,t)=>(w=m.split(t).join``)==m?m+t:w

@ নবে 4 এর উত্তরের চেয়ে সামান্য খাটো বিভক্তির সুযোগ নিয়ে যোগদান করুন


2

র‌্যাকেট, 70 বাইট

অনেকটাই অকপট.

(λ(s t)((if(string-contains? s t)string-replace string-append)s t""))

2

স্কালা, 72 70 বাইট

def x(m:String,s:String)={val r=m.replaceAll(s,"");if(r==m)m+s else r}

অনলাইন দোভাষী: www.ryscala.com


1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! আমি স্কালাকে চিনি না, তবে আমি মনে করি আপনি আশেপাশের স্থানগুলি সরাতে পারেন if(r==m)
ডেনিস

হ্যাঁ আপনি ঠিকই বলেছেন
অ্যাভিস

1

ওরাকল এসকিউএল 11.2, 66 বাইট

SELECT DECODE(:1,s,s||:2,s)FROM(SELECT REPLACE(:1,:2)s FROM DUAL);

1

পার্ল, 37 30 বাইট

{$_=shift;s/\Q@_//g?$_:"$_@_"}

টগল স্ট্রিংয়ের অভ্যন্তরে নিয়মিত প্রকাশগুলি কোট করার কারণে মূল্যায়ন করা হয় না \Q... এর\E

sub F এবং \E মন্তব্য অনুযায়ী অপসারণ করা হয় msh210 দ্বারা ।

সেট করার কারণে এটি সম্পূর্ণ পার্শ্ব প্রতিক্রিয়া থেকে মুক্ত নয় $_ । স্থানীয় ভেরিয়েবল ব্যবহার করতে ছয়টি অতিরিক্ত বাইট লাগবে:

{my$a=shift;$a=~s/\Q@_//g?$a:"$a@_"}

অন্যদিকে, স্যুইচড ইনপুট পরামিতিগুলির সাথে দুটি বাইট popপরিবর্তে ব্যবহার করে সংরক্ষণ করা যায়shift (28 বাইট) এর :

{$_=pop;s/\Q@_//g?$_:"$_@_"}

পরীক্ষা ফাইল:

#!/usr/bin/env perl

sub F{$_=shift;s/\Q@_//g?$_:"$_@_"}

sub test ($$$) {
  my ($m, $t, $r) = @_;
  my $result = F($m, $t);
  print "F('$m', '$t') -> '$result' ",
    ($result eq $r ? '=OK=' : '<ERROR>'), " '$r'\n";
}
test '', 'a', 'a';
test 'a', 'a', '';
test 'b', 'a', 'ba';
test 'ab', 'a', 'b';
test 'aba', 'a', 'b';
test 'ababa', 'aba', 'ba';
test 'ababa', 'a*', 'ababaa*';
test 'foobar', '.', 'foobar.';
__END__

পরীক্ষার ফলাফল:

F('', 'a') -> 'a' =OK= 'a'
F('a', 'a') -> '' =OK= ''
F('b', 'a') -> 'ba' =OK= 'ba'
F('ab', 'a') -> 'b' =OK= 'b'
F('aba', 'a') -> 'b' =OK= 'b'
F('ababa', 'aba') -> 'ba' =OK= 'ba'
F('ababa', 'a*') -> 'ababaa*' =OK= 'ababaa*'
F('foobar', '.') -> 'foobar.' =OK= 'foobar.'

পার্লসুব বলেছেন "স্বাক্ষরটি হ'ল সাবরুটিনের দেহের অংশ। সুতরাং, আপনি sub Fআপনার বাইট গণনা থেকে বাদ দিতে পারেন । এছাড়াও, আপনি দুটি বাইট সংরক্ষণ করে (ইনপুটগুলির ক্রমটি উল্টিয়ে, ন্যাচ) এর popপরিবর্তে ব্যবহার করতে সক্ষম হবেন shift। (স্বাক্ষরিত।) অবশেষে, আপনি \Eআরও দুটি বাইট সংরক্ষণ করে , বাদ দিতে সক্ষম হবেন । (এছাড়াও অপরীক্ষিত।)
msh210

@ msh210 ধন্যবাদ, আপনার টিপস সাতটি বাইট সংরক্ষণ করেছে। আমি দেখতে পাচ্ছি না, popপরিবর্তে কীভাবে shiftসাহায্য করা যায়, কারণ $_এড়ানো প্রথম যুক্তি হওয়া উচিত $_[1]=~s/.../। আউটপুট আবেদনের মাধ্যমে ইনপুট আর্গুমেন্টের ক্রম স্থির করা হয়েছে।
হাইকো ওবারডিক

ইনপুট আর্গুমেন্টের ক্রম প্রশ্নোত্তর দ্বারা স্থির হয় না।
msh210

1

সি # (58 বাইট)

string F(string s,string t)=>s==(s=s.Replace(t,""))?s+t:s;

এটি কয়েক বাইট বন্ধ শেভ করতে একটি ইনলাইন অ্যাসাইনমেন্ট ব্যবহার করে


হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! দুর্দান্ত প্রথম পোস্ট! আমি সি # বেশি ব্যবহার করি না, তবে আপনি পারবেন না var s,tবা এর var s,var tপরিবর্তে string?
NoOneIs এখানে

ধন্যবাদ! দুঃখজনকভাবে varকেবল সেই জায়গাগুলিতেই ব্যবহার করা যেতে পারে যেখানে সংকলনের সময় টাইপটি জানা ছিল, সুতরাং এটি পদ্ধতি স্বাক্ষরে ব্যবহার করা যায় না। আপনি ব্যবহার করতে পারেন dynamic, তবে এটির চেয়ে 1 অক্ষর দীর্ঘstring
ব্লু0500

কি হবে var F(string s, string t? এটি অনুমান করা যেতে পারে ...
NoOneIsHere

1

বাশ + সেড, 28 বাইট

sed "s/$2//g;t;s/$/$2/"<<<$1

স্ক্রিপ্টটি টগল-স্ট্রিং.বাশ ফাইলে থাকে, যার সাথে আমরা কল করি bash toggle-string.bash mainstring togglestring

s/$2//g মূল স্ট্রিং থেকে টগল স্ট্রিংটি সরিয়ে দেয়

t আগের প্রতিস্থাপনটি সফল হলে শেষের দিকে ঝাঁপ দেয় (যেমন মূল স্ট্রিংটিতে টগল স্ট্রিং রয়েছে)

/$/$2/ শেষে টগল স্ট্রিং যোগ করুন ($ ), যদি আমরা শেষ দিকে না লাফাই

এই স্ট্রিংয়ের জন্য বাশ দরকার


টগল স্ট্রিংয়ে বিশেষ অক্ষর থাকলে এটি কাজ করবে না।
ডেনিস


0

পাওয়ারশেল ভি 2+, 47 বাইট

param($a,$b)(($c=$a-replace$b),"$a$b")[$c-eq$a]

ইনপুট নেয় $a,$bএবং তারপরে একটি (... , ...)[...]/ অন্যথায় সঞ্চালনের জন্য সিউডো-টের্নারি স্টেটমেন্ট ব্যবহার করে । দুটি উপাদানগুলির একটি অ্যারে গঠনের জন্য অভ্যন্তরীণ অংশগুলি প্রথমে মূল্যায়ন করা হয়। 0 তম হ'ল $aসমস্ত ঘটনার $b -replaceসাথে কিছুই নয়, যা এতে সঞ্চিত থাকে$c । 1 ম হল একটি স্ট্রিং কনটেক্সটেশন $aএবং $b

যদি $cহয় -eqকরতে ual $a, যার মানে হল $bপাওয়া যায়নি, যে বুলিয়ান $trueবা 1, এবং তাই অ্যারের (সংযুক্তকরণের) এর 1 ম উপাদান নির্বাচিত করা হয়। অন্যথায়, এটি বুলিয়ান $false, সুতরাং আমরা আউটপুট করি $c, 0 তম উপাদান।

নোটটি -replaceলোভী, সুতরাং এটি প্রথমে বাম থেকে প্রতিস্থাপন করবে, যার অর্থ ababa / abaপরীক্ষার কেসটি সঠিকভাবে ফিরে আসবে ba




0

ম্যাথমেটিকা, 45 বাইট

If[StringContainsQ@##,StringDelete@##,#<>#2]&

বেনামে ফাংশন যা মূল স্ট্রিং এবং টগল স্ট্রিং নেয় (সেই ক্রমে) এবং ফলাফলটি দেয়। ব্যাখ্যা:

                                            &  Anonymous function returning...

If[StringContainsQ@##,               ,     ]    if its first argument contains
                                                its second argument, then...
                      StringDelete@##            its first argument with its
                                                 second argument removed, else...
                                      #<>#2      its second argument appended to
                                                 its first argument.

0

টিএসকিউএল, 143 129 121 বাইট

DECLARE @1 VARCHAR(10)='',@2 VARCHAR(10)='a'SELECT CASE WHEN @1 LIKE'%'+@2+'%'THEN REPLACE(@1,@2,'')ELSE CONCAT(@1,@2)END

রিডেবল:

   DECLARE @1 VARCHAR(10) = ''
    , @2 VARCHAR(10) = 'a'

SELECT CASE WHEN @1 LIKE '%' + @2 + '%'
            THEN REPLACE(@1, @2, '')
            ELSE CONCAT (@1, @2)
            END

Live Demo

কঠোরভাবে 1 অক্ষর ইনপুট সহ 114 বাইট

DECLARE @1 CHAR(1) = 'a'
    , @2 CHAR(1) = '.'

SELECT CASE WHEN @1 LIKE '%' + @2 + '%'
            THEN REPLACE(@1, @2, '')
            ELSE CONCAT (@1, @2) END

হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! দুর্দান্ত উত্তর!
NoOneIsHere


0

রুবি, 35 37 28 বাইট

->m,t{m[t]?m.gsub(t,''):m+t}

স্ট্রিং ইন্টারপোলেশন জন্য হুর! এমনকি এটি রেজিজেসেও কাজ করে। বাকি সহজ: তাহলে স্ট্রিং tখেলাগুলিতে m, প্রতিস্থাপন tসঙ্গে '', অন্য আগমনm+t

সম্পাদনা: একটি বাগ সংশোধন করা হয়েছে।

সম্পাদনা: আমি কেভিন ল'র পরামর্শটি প্রয়োগ করেছি, তবে মনে হচ্ছে লুইস মাসুএলির উত্তরে ব্যবহৃত অ্যালগরিদমে আমি পৌঁছেছি ।


টগল স্ট্রিংয়ে বিশেষ অক্ষর থাকলে এটি ব্যর্থ হতে পারে। উদাহরণস্বরূপ, পরিবর্তে ("a", ".")ফিরে আসে । "a""a."
ডেনিস

m[t]এর চেয়ে অনেক কম m.include?(t)এবং স্ট্রিংগুলির মধ্যে অন্তর্ভুক্তির জন্য এখনও পরীক্ষা করে।
মান কালি

0

কে (23 বাইট)

{$[#x ss y;,/y\:x;x,y]}

উদাহরণ:

k){$[#x ss y;,/y\:x;x,y]}["aba";"a"]
,"b"
k){$[#x ss y;,/y\:x;x,y]}["this string has 6 words ";"now"]
"this string has 6 words now"
k){$[#x ss y;,/y\:x;x,y]}["this string has 5 words now";"now"]
"this string has 5 words "
k){$[#x ss y;,/y\:x;x,y]}["ababa";"ba"]
,"a"
k){$[#x ss y;,/y\:x;x,y]}["";"a"]
,"a"

0

কোটলিন, 61 বাইট

{m:String,t:String->var n=m.replace(t,"");if(m==n)m+t else n}

যদি অ্যাসাইনমেন্টটি কোটলিনে একটি অভিব্যক্তি হয় এবং প্যারামিটারগুলি পারস্পরিক পরিবর্তনযোগ্য ছিল এবং এটি একটি ত্রৈমাসিক শর্তসাপেক্ষ অপারেটর ছিল তবে এটি সংক্ষিপ্ত হবে: দুঃখজনকভাবে এই ঘটনাটি নয় :(

অনলাইনে চেষ্টা করে দেখুন!

UnGolfed

fun t(m:String, t:String):String{
    var n=m.replace(t, "")
    return if(m==n)m+t else n
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.