পারফেক্ট পেয়ারিংস সনাক্ত করুন


25

আসুন একটি ফাংশন যা একটি স্ট্রিং নেয় এবং সংলগ্ন অভিন্ন চরিত্রগুলির সমস্ত জোড়া সরিয়ে দেয়। উদাহরণ স্বরূপf

f(abbbacc)=aba

মনে রাখবেন যে দুটি জোড়া যখন ওভারল্যাপ হয় তখন আমরা কেবল তার মধ্যে একটিকে সরিয়ে ফেলি।

যদি বারবার প্রয়োগটি অবশেষে খালি স্ট্রিং দেয় তবে আমরা পুরোপুরি যুক্ত স্ট্রিংটিকে কল করব। উদাহরণস্বরূপ, উপরের স্ট্রিংটি পুরোপুরি যুক্ত নয়, কারণ আমরা যদি আবার প্রয়োগ করি তবে আমরা পেতে পারি । তবে মতো একটি স্ট্রিং পুরোপুরি যুক্ত করা হয়েছে কারণ আমরা যদি তিনবার প্রয়োগ করি তবে আমরা খালি স্ট্রিংটি পাইএকটি একটি একটি একটি abbbaccfabaeabbccaddef

f(eabbccadde)=eaae

f(eaae)=ee

f(ee)=


আপনার কাজটি হ'ল পুরোপুরি জোড় করা কম্পিউটার কোডটি লিখুন যা একটি স্ট্রিং নেয় (মুদ্রণযোগ্য ASCII এর) এবং সিদ্ধান্ত নেয় যে এটি পুরোপুরি জুটিবদ্ধ কিনা। আপনার উত্সের বাইটারেটিং নিজেই একটি নিখুঁত জোড়যুক্ত স্ট্রিং হওয়া উচিত , যদিও আপনার কোডটি প্রিন্টযোগ্য এএসসিআইআই-তে সীমাবদ্ধ রাখতে হবে না।

আপনি দুটি স্বতন্ত্র মান আউটপুট করতে পারেন: একটি যেখানে ইনপুটটি পুরোপুরি যুক্ত হয় এবং অন্যটি এমন ক্ষেত্রে যেখানে এটি হয় না।

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


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

abbbaccFalseabcbaFalseababFalseabbbaabaccTrueeabbccaddeTruebbbbTrue


1
যদিও এখনই এটি পরিবর্তন করতে অনেক দেরি হতে পারে, আমি মনে করি চ্যালেঞ্জের "মোচড়" অংশটি প্রায় অর্থহীন রেন্ডার হয়ে গেছে যদি আপনি মন্তব্য বা অনুরূপ "মৃত" কোড মঞ্জুর করেন।
জিওবিটস

11
@ জিওবিটস আমি একমত নই একজনের জন্য আমি মনে করি যে মৃত কোডটি অস্বীকার করা অস্পষ্ট সংজ্ঞাগুলির একটি মাত্রা এবং যাইহোক কখনও মজাদার পরিণত হয় না। দু'জনের জন্য আমি মনে করি মন্তব্যগুলি প্রবেশের বারটিকে কমিয়ে দেয়। তিনজনের জন্য আমি বিশ্বাস করি যে কমেন্ট-কম কোড অনিবার্যভাবে কমেন্ট-পূর্ণ কোডের চেয়ে ভাল স্কোর করবে। সম্ভবত মোড়টি মজাদার নয় তবে উত্তরগুলি এটি একটি নির্দিষ্ট উপায়ে করার জন্য অদম্য বিধিনিষেধ যুক্ত করলে অবশ্যই মজাদার কম হবে।
গম উইজার্ড

4
উয়ানারি আপনার উত্স বিধিনিষেধের নিয়ম সম্পর্কে কোন অভিব্যক্তি দেয় না, মওয়াহাহাহাহা (এটি হ'ল ... যতক্ষণ উত্তরটির একটি এমনকি সংখ্যক বাইট রয়েছে)।
আর্নল্ড

2
@ জিওবিটস এমন একটি জিনিস যা আরও সৃজনশীল উত্তরকে উত্সাহিত করতে পারে তা হ'ল স্কোরিংয়ে খালি স্ট্রিংয়ে পৌঁছানোর পদক্ষেপের সংখ্যা নির্ধারণ করা। মন্তব্যগুলি ব্যবহারের ফলে এই সংখ্যাটি বেশ বেশি হয়ে যায় কারণ মন্তব্যগুলি প্রাকৃতিকভাবে নীড় করে যেখানে কম স্কোর হিসাবে আপনাকে জোড়াটি বেশ খানিকটা আলাদা করতে হয়। স্পষ্টতই যদিও এই পরিবর্তন করতে দেরি হয়েছে।
গম উইজার্ড

1
@ অল্লান খালি স্ট্রিংটি হতে পারে, চিরতরে লুপ করা তবে বৈধ আউটপুট নয়।
গম উইজার্ড

উত্তর:


10

হাস্কেল, 146 124 বাইট

((""##))
a===bb=bb==a
((aa:bb))##((cc:dd))|aa===cc=bb##dd|1==1=((cc:aa:bb))##dd
a##""=""===a
""##cc=((cc!!00:cc!!00:""))##cc

কোন মন্তব্য নেই. হয় হয় Trueবা False

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

সম্পাদনা: -২২ বাইটস @ ক্যাটেলিজ উইজার্ডকে ধন্যবাদ


2
এটি হ্যাশেলের মতো স্বল্পতম হ্যাসেল যা আমি দেখেছি
কিউবিক


5

05 এ বি 1 ই , 26 24 22 20 18 বাইট

-2 ধন্যবাদ বাইট ovs । আউটপুট 0 যদি স্ট্রিংটি পুরোপুরি যুক্ত হয়, অন্যথায় 1

ΔγʒgÉ}JJ}ĀqqĀÉgʒγΔ

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

}GÉ} JJ Ā }qqʒγΔgʒγΔ - সম্পূর্ণ প্রোগ্রাম।
Δ} - ফলাফল আর পরিবর্তন হয় না:
 γʒ} - স্ট্রিংটি সমান অক্ষরের অংশে বিভক্ত করুন এবং এর মাধ্যমে ফিল্টার করুন:
   gÉ - দৈর্ঘ্য কি বেআইনী?
      জেজে - এবং ফিল্টারিংয়ের পরে, অংশগুলি আবার একসাথে যোগ করুন, তবে এটি করুন
                     আগের সংস্করণগুলির মতো 2 বাইট সংরক্ষণ করতে দুবার।
         Ā - ফলাফল খালি কিনা তা পরীক্ষা করে দেখুন
          q - সমাপ্তি (প্রস্থান) কার্যকর করা। কোডের বাকি অংশগুলি উপেক্ষা করা হয়।
           QĀÉgʒγΔ - উত্স লেআউটে সহায়তার জন্য মেলে না এমন অংশটি মিরর করুন।

পূর্বের সংস্করণসমূহ

এটি সম্পূর্ণরূপে অপরিবর্তিত আচরণের উপর নির্ভর করে (সুতরাং কোনও "ডেড কোড" নেই) এবং সঠিকভাবে জুড়ে দেওয়া স্ট্রিংয়ের জন্য [['0']] এবং সঠিকভাবে মিলে না যাওয়া স্ট্রিংয়ের জন্য [['1']] আউটপুট দেয় :

ΔγεDgÉ£}JJ}ĀĀ£ÉgDεγΔ 

এবং 22-বাইট সংস্করণটি ব্যাখ্যা করা হয়েছে, যা কেবল উপরেরটি কিন্তু ইউবিকে আপত্তিজনক নয়, এবং বুদ্ধিমান মান দেয়।

ΔγεDgÉ£}JJ}ĀqqĀ£ÉgDεγΔ – Full program.
Δ         }            – Until fixed point is reached (starting from the input value):
 γε    }                 – Group equal adjacent values, and for each chunk,
   DgÉ                     – Duplicate, get its length mod by 2.
      £                    – And get the first ^ characters of it. This yields the
                             first char of the chunk or "" respectively for odd-length
                             and even-length chunks respectively.
         JJ                – Join the result to a string, but do this twice to help
                             us with the source layout, saving 2 bytes.
            Ā           – Check if the result is an empty string.
             q          – Terminate the execution. Any other commands are ignored.
              qĀ£ÉgDεγΔ – Mirror the part of the program that isn't otherwise removed
                          anyways. This part forgoes }JJ} because that substring will
                          always be trimmed by the algorithm anyway.

5

কিউবিক্স , 54 বাইট

U#;!u1@.Oi>??>i..??O.@1^^...u--u.u!ww;..#..U..;..;!^^!

স্ট্রিংটি পুরোপুরি যুক্ত হয়ে থাকলে এবং 1অন্যথায় আউটপুট দেয় না ।
এখানে চেষ্টা করুন

Cubified

      U # ;
      ! u 1
      @ . O
i > ? ? > i . . ? ? O .
@ 1 ^ ^ . . . u - - u .
u ! w w ; . . # . . U .
      . ; .
      . ; !
      ^ ^ !

ব্যাখ্যা

কোডটি পুরোপুরি যুক্ত করার জন্য বেশিরভাগ অক্ষরের ফিলার প্রয়োজন। .(কোনও বিকল্প) দিয়ে তাদের প্রতিস্থাপন করা , আমরা পাই

      U # ;
      ! u 1
      @ . O
i . ? . > i . . ? . . .
. . ^ . . . . u - . . .
. . . w ; . . . . . . .
      . ; .
      . ; !
      ^ ^ !

এটি তিনটি ধাপে বিভক্ত হতে পারে:

  • খালি স্ট্রিং (বাম iএবং এর ?) বিরুদ্ধে পরীক্ষা করুন ।
  • লুপ, স্ট্যাকের উপরে অক্ষর নিক্ষেপ করা এবং নকলগুলি পপ করা (নীচে এবং ডানদিকে সমস্ত কিছু)।
  • স্ট্যাকটি খালি আছে কিনা তা পরীক্ষা করুন (শীর্ষে থাকা স্টাফ)।

4

ভি , 20 , 18 বাইট

òóˆ±òø‚

::‚øò±ˆóò

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

Hexdump:

00000000: f2f3 88b1 f2f8 820a 0a3a 3a82 f8f2 b188  .........::.....
00000010: f3f2                                     ..                   ....

সত্যবাদিতার জন্য 0 ফলাফল, মিথ্যা জন্য 1। পরোক্ষভাবে 2 বাইট সংরক্ষণ করার জন্য nmjcman101 ধন্যবাদ।

ò        ò        " Recursively...
 ó                "   Remove...
  <0x88>          "     Any printable ASCII character
        ±         "     Followed by itself
          ø       " Count...
           <0x82> "   The number of non-empty strings

::<0x82>øò±<0x88>óò      " NOP to ensure that the code is paired

আপনি এর ^$সাথে প্রতিস্থাপন করতে .পারেন এবং সত্যের জন্য 0 ফিরিয়ে দিতে পারেন, মিথ্যাচারের জন্য অন্য কিছু? আমি কিছুক্ষণ এটি না করার পরে নিয়মগুলিতে কিছুটা কুয়াশাচ্ছন্ন।
nmjcman101

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

3

আর , 142 126 বাইট

কড়া যুক্তি এবং কিছু মন্তব্য বাইট @ জিউজ্পে দ্বারা গল্ফড

f=function(x,p="(.)\\1")"if"(grepl(p,x),f(sub(p,"",x)),!nchar(x))##x(rahcn!,x,,p(bus(f,)x,p(lperg("fi")"1\\).("=p,x(noitcnuf=f

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

f=function(x,p="(.)\\1")"if"(nchar(x),"if"(grepl(p,x),f(sub(p,"",x)),0),1)##)1,)0,xp(bus(f,)x,p(lperg("fi",)x(rahcn("fi")"1).("=p,x(noitcnuf=f

মূল:

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

বিপরীতমুখী ক্রিয়াকলাপের সমস্ত অক্ষরগুলির সাথে মন্তব্যগুলির পরে পুনরাবৃত্ত ডিটেক্টর ফাংশন।


আপনার কোডটি বর্তমানে একটি ত্রুটি ছুড়েছে। এখানে 142 বাইটে একটি কার্যকরী সংস্করণ রয়েছে।
ovs

ধন্যবাদ. অবশ্যই কাটা-পেস্ট দুর্ঘটনা ঘটেছে।
এনজিএম

126 বাইট - আপনি মন্তব্যটি আরও কিছুটা
জিউসেপ

আমি ভাবছি `\\ simp সরল করবে বা মন্তব্যগুলিতে নকল করা দরকার কিনা।
জেসি

@ জায়েসি আপনি ভাবছেন যে এটির মন্তব্যে থাকার দরকার নেই, তবে এটি চেষ্টা করুন এবং এটি কার্যকর হবে বলে মনে হয় না। কেন জানি না।
এনজিএম



2

ব্রেন-ফ্লাক , 228 200 বাইট

(()){{{}([]<<{{(({}<<>>)<<>>[({})]){{{{}(<<<<>>()>>)((<<>>))}}}{}{}<<>>{}<<>>}}{}<<>>>>[[]])}}{}(<<({{(())(<<()>>)}}<<>>)>>){{{{}{}}((){{}{}{}{}{}}(()())())[[]((){{}{}}())[]]((){{}{}}[[][]]()){{}{}}}}

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

এটি ধারণার একটি প্রমাণ কিছুটা। এটি সম্ভবত আরও খাটো হতে পারে। এটি কোনও মন্তব্য ব্যবহার করে না।

0,0যদি ইনপুটটি পুরোপুরি যুক্ত হয় এবং 0,1যদি ইনপুটটি না থাকে তবে আউটপুটগুলি ।


2

সেড 4.2.2 , 34 বাইট

:;:t;ss((..??\??))\1ss1;t;/..??/cc

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

যুক্ত জোড়যুক্ত স্ট্রিং খালি আউটপুট দেয়, অকেজো তৈরিগুলি দেয় ct:

তুচ্ছ প্যালিনড্রমিক সংস্করণটি 32 এ রয়েছে :;ss(.)\1ss;t;/./cc/./;t;1\).(;:। পুরানো সমাধান ছিল :;ss((..??\??))\1ss1;t;;/./cc/./t:(পরিবর্তিত হয়েছে কারণ বর্তমানের cকম ব্যবহার করা হয়েছে, সম্পাদনা করুন: হ্যাঁ এখন কেবলমাত্র 1 টি অক্ষর রয়েছে c: ডি)

( ;এটি বিবৃতি বিভাজক নোট করুন )

: একটি খালি লেবেল ঘোষণা করে

:t লেবেল ঘোষণা t

ss((..??\??))\1ss1এটি একটি প্রতিস্থাপন, সিডে আপনি ডেলিমিটারকে একটি প্রতিস্থাপনে পরিবর্তন করতে পারেন, এবং এটিতে আমি এটি পরিবর্তন করেই করেছি s, সুতরাং এটি যা করে তা প্রথমটি প্রতিস্থাপন করা হয় (যেমন 1শেষে বলা হয়েছে)

  • ম্যাচ ((..??\??))\1

    • . কোন চরিত্র
    • .?? এর পরে একটি alচ্ছিক alচ্ছিক চরিত্র
    • \?? এবং একটি .চ্ছিক ?
    • তার ঠিক পাশেই একই জিনিস
  • কিছুর সাথে না

এখন এই প্রতিস্থাপনটি নিজের সাথে জুটিবদ্ধ, সুতরাং ;এর আগে এবং পরে এটি বাতিল হয়ে যায়

t আর কোনও সফল বিকল্প বিকল্প না পাওয়া পর্যন্ত লেবেলে ফিরে লুপ করুন

/..?/যদি .(ওয়াইল্ডকার্ড) এর পরে .?একটি alচ্ছিক অক্ষর মেলে

  • cc বাফার এ পরিবর্তন করুন c

2

ব্রেন-ফ্লাক , 112 110 108 বাইট

(()){{}({<<(({}<<>>)<<>>[({})]){{((<<>>)<<>>)}}{}{##{

}<<>>>>{}<<>>}<<>>)}{}((){{<<>>[[]]}})##}{}])}{([)}(}

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

এই উপর ভিত্তি করে তৈরি আমার উত্তর থেকে বন্ধনী মিলেছে করছেন?

মন্তব্য ব্যবহার না করার চেষ্টা করা হয়েছে, তবে পপ নিলাদের ( {}) জুটি বাঁধার চেষ্টা করে আটকে গেছেন । সমস্যাটি হ'ল এক জোড়া বন্ধনী যুক্ত করার সবচেয়ে সহজ উপায়টি এটি একই ধরণের অন্য একটি জোড়ায় ঘিরে। এটি অন্যান্য নীলাদের পক্ষে সহজ হলেও, {...}মনাদ লুপগুলি তৈরি করে। লুপটি থেকে বেরিয়ে আসার জন্য আপনাকে একটি 0 টি চাপতে হবে, তবে একবার লুপটি প্রস্থান করার পরে আপনাকে 0 টি পপ করতে হবে, যা সমস্যাটিকে মিশ্রিত করে।

66 বাইট প্রি-পেয়ারযুক্ত সমাধানটি হ'ল:

(()){{}({<(({}<>)<>[({})]){((<>)<>)}{}{}<>>{}<>}<>)}{}((){<>[[]]})

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

আউটপুট 1বা 1,0যদি ইনপুটটি একটি নিখুঁত জুটি হয়, 0,0তা না হলে।

কোন মন্তব্য সংস্করণ, 156 বাইট

(()){{{}({<<(({}<<>>)<<>>[({{}((<<[[]]>>)){}}{}(<<[]>>){{}{}}{})]){{((<<>>)<<>>)}}{{}{}{}}{}{}<<>>>>{}<<>>}<<>>)}}{{}{}}{}((){<<>>[[]]})(<<()()>>){{}{}{}}{}

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

যেমন ক্যাট উইজার্ড উল্লেখ করেছেন, প্রথম উত্তরটি সমস্ত দোভাষীদের জন্য কাজ করে না, যেমন সমস্ত #মন্তব্য মন্তব্য পরিচালনা করে না । এই সংস্করণটিতে কোনও মন্তব্য নেই।


নোট করুন যে এটি কেবল রুবি ব্রেনফ্ল্যাক ইন্টারপ্রেটারে কাজ করে এবং সুতরাং এটি একটি খাঁটি ব্রেইনফ্লাক উত্তর নয়
Wheat Wizard

@ গুগল-উইজার্ড একটি ক্যানন মস্তিষ্ক-ফ্ল্যাক দোভাষী আছে? আমি যতদূর জানি বৃষ্টি-ফ্লাক (রুবি) হ'ল মূল দোভাষী। (এছাড়াও, আমি কোনও মন্তব্য ছাড়াই সমাধানে কাজ করছি)
জো কিং

আসলে তা না. বৃষ্টি-ফ্লাক মূল দোভাষী কিন্তু এটির মন্তব্য সিনট্যাক্স এটির জন্য অনন্য। আমরা কিছুক্ষণ আগে ব্রেইন-ফ্ল্যাঙ্ক স্ট্যান্ডার্ডটি লিখেছিলাম, আমার মনে নেই এটি কোথায় শেষ হয়েছিল।
গম উইজার্ড

@ গুগল উইজার্ড কোনও মন্তব্য সংস্করণ শেষ করেছেন
জো কিং

2

জাপট, 24 22 বাইট

falseসত্য এবং মিথ্যা জন্য ফলাফল true

&&!!e"(.)%1"PP"1%).("e

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


চান «e"(.)%1কাজ করে?
অলিভার

@ অলিভার, উত্স নিষেধাজ্ঞাগুলি আমার নজরে আনার আগে আমার কাছে এটি ছিল মূলত। এখনও এটি দিয়ে কাজ করার উপায় খুঁজে বের করার চেষ্টা করছে «
শেগি

@ অলিভার, এটি কাজ করে না , দুঃখের সাথে।
শেগি

আমি সন্দেহ করি আপনি @ ওলিভার, চ্যালেঞ্জের সীমাবদ্ধ উত্স / উত্স-বিন্যাস অংশটি মিস করেছেন।
শেগি

আমি করেছি ... আমার খারাপ।
অলিভার

2

ব্রেন-ফ্লাক , 96 বাইট

{<<>>(({})<<>>[(([{}<<>>]))]){((<<[[]]>>))}{}{}{}{}<<>>}<<>>{{{}{}{}{}{}}((<<>>){{}{}}){{{}}}}{}

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

ইনপুট পুরোপুরি জোড় করা থাকলে এবং 0অন্যথায় আউটপুট কিছুই না।

নিখুঁতভাবে যুক্ত (মূল) সংস্করণ:

{<>(({})<>[({}<>)]){((<()>))}{}{}{}<>}<>{((<>))}{}

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


2

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

null.foldr((%))"";;cc%((r:t))|cc==r=t;;t%s=t:s--s:t=s%=r|t:dlof.un

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

ক্যাট উইজার্ড 6 বাইট সংরক্ষণ করেছে।



@ গুগল উইজার্ড এটি দূরত্বের কিছু চিত্তাকর্ষক।
xnor


2

++ , 146 বাইট যুক্ত করুন

D,g,@~~,L2_|*;;*|_2L,@,g,D
D,ff,@^^,BG€gBF;;FBg€GB,@D1:?:

xx:?

aa:1
`bb
Bxx;;B
Waa*bb,`yy,$ff>xx,`aa,xx|yy,`bb,Byy,xx:yy

O;;O:,B,`,|,`,>$,`,*W`

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

মজাদার ঘটনা: ব্যাখ্যাটি শুরু হওয়ার অনেক আগে এটি 272 বাইট ছিল, এখন এটি জাভাটিকে পরাজিত করে।

Trueপুরোপুরি সুষম স্ট্রিংগুলির আউটপুটস এবং Falseঅন্যথায়

আমার অত্যন্ত সন্তুষ্টির জন্য, ফলাফলটি দু'বার মুদ্রণ করা রোধ করতে, বিরক্তিকর এই প্যালিনড্রোমাইজ সংস্করণটিকে 2 বাইট দ্বারা পিট করে। আমিও যতটা সম্ভব সামান্য মৃত কোড হিসেবে আছে, যার লক্ষ্য করেছি, তা সত্ত্বেও এখনও কিছু মন্তব্য করেছে-আউট অংশ, এবং একটি ত্রুটি কোডের মাধ্যমে কোড প্রস্থানের হয় 1 , সঠিক মান মুদ্রণ পরে।

এনবি : এই উত্তরটি বিকাশে চলাকালীন BFকমান্ড সহ একটি বাগ ঠিক করা হয়েছিল।

কিভাবে এটা কাজ করে

ffgffffgSff(S)S

Sabbbaabacc[[a],[bbb],[aa],[b],[a],[cc]]g, এবং ফাংশনের ফলাফলের সাথে সাবলিস্টগুলি প্রতিস্থাপন করুন।

g2x[a][bb][ccc]

[a][a,1]
[bb][b,b,0]
[ccc][c,c,c,1]

xx>2x2x*

g(s)sBF^D,ff,@^^,grr;;

ffgff

  • xxff
  • yyff
  • aa
  • bbyy

gxyabg

abc{...}g{...}ggffg

D,gg,@~~,L2_|*;;*|_2L,@D             (NB: -2 bytes)
D,ff,@^^,BG€{gg}BF;;FB}gg{€GB,@D?:   (NB: +6 bytes)

যা 4 বাইট দীর্ঘ।

x=5x=15

x+10 ; Explicit argument
+10  ; Implicit argument, as x is active

x`

ffgxxxx:?xxaaaa:11xxbb

`bb
Bxx

bbxxaa:=1bb:=¬¬xx

তারপরে আমরা আমাদের লুপটি প্রবেশ করবো:

Waa*bb,`yy,$ff>xx,`aa,xx|yy,`bb,Byy,xx:yy

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

aa*bbaabbyyff(x)

`yy,$ff>xx

aa

  • 1) নতুন মান পুরানো মানের সাথে সমান হয় না (লুপটি অনন্য যখন)
  • 2) নতুন মানটি খালি স্ট্রিং নয়

অ্যাড ++ এর অন্যতম বৃহৎ ত্রুটি হ'ল যৌগিক বিবৃতিগুলির অভাব, যা দ্বিতীয় লুপ ভেরিয়েবলের প্রয়োজন। আমরা আমাদের দুটি ভেরিয়েবল নিযুক্ত করি:

aa:=xxyy
bb:=¬¬(yy)

কোড সহ

`aa,xx|yy,`bb,Byy

|B xxyyxx:yy

ffaabb

aax=yaayybbaa

তারপরে আমরা আমাদের চূড়ান্ত বিবৃতিতে পৌঁছে যাই:

O

bb

  • aa=1bb=FalseFalse
  • aa=Truebb=FalseFalse
  • aa=Falsebb=TrueTrue

bbbbTrueFalse


1

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

একটি বুলিয়ান ফেরত দেয়।

ff=ss=>ss==(ss=ss.replace(/(.)\1/,''))?!ss:ff(ss)//)(:!?,/1\).(/(ecalper.=(>

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

@ শেগি দ্বারা প্রস্তাবিত: 58 টি বাইট পুরোপুরি যুক্ত করার জন্য খালি স্ট্রিংটি ফিরিয়ে দিয়ে বা অন্যথায় ত্রুটি নিক্ষেপ করে।


1
যদি "রিটার্ন মানগুলি" এর মধ্যে কোনও ত্রুটি হতে পারে (এটির বিষয়ে নিশ্চিতকরণের জন্য অপেক্ষা করছে) তবে এটি 66 66 বাইট হতে পারে ।
শেগি

প্রোগ্রামগুলি প্রস্থান কোডের মাধ্যমে ডিফল্ট আউটপুট দ্বারা পারে । এই উত্তরের নির্দিষ্ট ক্ষেত্রে, সম্ভাব্য আউটপুটগুলি পুরোপুরি যুক্ত জোড়যুক্ত স্ট্রিংগুলির জন্য প্রস্থান কোড 0 এবং নিখুঁত জোড়যুক্ত স্ট্রিংগুলির জন্য প্রস্থান কোড 1 হবে , যা দুটি পৃথক মান যার ফলে মানদণ্ডটি পূরণ করে; সুতরাং 58 বাইটার অবশ্যই পুরোপুরি বৈধ হতে হবে।
মিঃ এক্সকোডার


1

লুয়া , 178 বাইট

p=...S={}for a in p:gmatch"."do E=S[#S]~=a;S[E and#S+1 or#S]=E and a or X end;print(#S==0)--)0S#(tnirp;dne X ro a dna E=]S#ro 1+S#dna E[S;a=~]S#[S=E od"."hctamg:p ni a rof}{=S.=p

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

যদিও এটি অত্যন্ত দীর্ঘ সমাধান, এটি লুয়া-নির্দিষ্ট quirks ব্যবহারের বেশ কিছুটা করে। এটি আসলে একটি সংক্ষিপ্ত আকারের ব্রুট স্ট্যাক অ্যালগরিদম। প্রোগ্রামটি জটিল করে তুলেছে যে লুয়ার নিদর্শনগুলি জোড় এবং রেজেক্সগুলি প্রতিস্থাপনের অনুমতি দেয় না।

ব্যাখ্যা:

p=... -- command-line argument
S={} -- the stack
for c in p:gmatch"." do -- shorter than "for i=1,#p do ..."
    E=S[#S]~=c -- check whether we have the right letter on top of stack
    -- could've saved some bytes by doing == instead of ~=
    -- but the double negation is necessary for ternary operator
    -- to work with nil values
    S[E and #S+1 or #S]=E and c or X -- Lua's awesome "ternary operator"
end
-- i'm sure there is a better way to output this (table indexing?)
print(#S==0)

1

গোল> <> , 30 বাইট

1ll1**F:}}:{=Q{~~||lzBBzl{Q={F

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

প্রথমটির পরে সমস্ত Bকিছু অতিরিক্ত কোড এবং কার্যকর হয় না। এমন একটি ফাংশন যা স্ট্যাকের শীর্ষটিকে ফেরত দেয় 1যেন 0কোনওভাবে ইনপুটটি নিখুঁত জুড়ি তৈরি হয়।

ব্যাখ্যা:

1       Push 1 as the end string marker
 ll1**  Push n, where n (len+1)*(len+2), 
        This is larger than the amount of steps needed to determine pairing
      F           |  Repeat that many times
       :}}:{=        Compare the first two characters of the string
             Q   |   If they are equal
              {~~    Pop both of them
        String is also rotated by 1
        If the string becomes empty, the 1 is compared to itself and removed.
                   lzB   Return whether the length of the stack is 0
                      Bzl{Q={F  Excess code to match unpaired symbols

1

কিউবিক্স , 30 বাইট

1O@;??;@ii??O;>>;;;..1Wcc1??1W

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

1স্ট্রিংটি পুরোপুরি জোড় করা থাকলে এবং ফলস্বরূপ কিছু না হলে আউটপুট ।

Cubified

      1 O @
      ; ? ?
      ; @ i
i ? ? O ; > > ; ; ; . .
1 W c c 1 ? ? 1 W . . .
. . . . . . . . . . . .
      . . .
      . . .
      . . .

সরলীকৃত

      1 O @
      ; ? .
      . @ .
i ? . . . . > ; ; ; . .
. W c . . . ? 1 W . . .
. . . . . . . . . . . .
      . . .
      . . .
      . . .

যুক্তি এবং সাধারণ কাঠামো স্তন্যপায়ী জবাব হিসাবে একই, কিন্তু খালি স্ট্রিং জন্য একটি সুস্পষ্ট চেক ছাড়া।


1

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

gg""

gg((aa:cc:bb))dd|aa==cc=gg bb dd

gg  aa""=""==aa

gg  aa((bb:c))=gg((bb:aa))c--c:=c:|

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

@ নিমির উত্তরটি বেশ দুর্দান্ত, এটি কোনও মন্তব্য ব্যবহার করে না। এইটি খাটো হলেও একটি মন্তব্য ব্যবহার করে।

@ এক্সনরের উত্তরটিও দুর্দান্ত,


0

পাইথন 2 , 114 বাইট

import re

e=lambda i,nn=1:e(*re.subn('(.)\\1','',i))if nn else''==i##ieslef'1).('(nbus.er*(e:1=,i adbmal=r tropmi

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

অন্যথায় True, পুরোপুরি জোড়যুক্ত স্ট্রিংয়ের জন্য ফিরে আসে False

(আসলে নিজেকে যাচাই করতে ব্যর্থ হয়েছে, কারণ (.)কোডে নতুন লাইনের সাথে মেলে না! তবে @ গুগল উইজার্ড বলেছে এটি ঠিক আছে, কারণ নিউলাইনগুলি এএসসিআইআই মুদ্রণযোগ্য নয়, সুতরাং আমার প্রোগ্রামগুলি সেগুলি পরিচালনা করার দরকার নেই))


এটি একেবারে জোড়যুক্ত সংস্করণ:

import re;p=lambda s,n=1:p(*re.subn('(.)\\1','',s))if n else''==i

যার জন্য একটি "অলস" পারফেকশনাইজেশন code + '##' + f(code[::-1])120 বাইট দেয়। (এটি হল ভেরিয়েবলগুলির নামকরণ ইত্যাদি কোডের অর্ধেক মন্তব্যের ভিতরে আরও ধসে পড়া জোড় যুক্ত করার জন্য by বাইট সংরক্ষণ করা হয়েছে))


re.subnএটির একটি সামান্য-পরিচিত বৈকল্পিকটি re.subএকটি টিপল দেয় (new_string, number_of_substitutions_made)। রেজেক্সের প্রতিস্থাপনের ফিক্সপয়েন্টগুলি সন্ধানের জন্য এটি বেশ ভাল!


0

জেলি , 26 24 22 বাইট

ẠƬµF€ḂLḣgŒŒgḣLḂ$$€FµƬẠ

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

অদ্ভুতভাবে মনে হচ্ছে পিছনের কোডটি অব্যবহৃত লিঙ্কে না নিয়েই কাজ করছে।

ফেরত পাঠায় 0 যদি ইনপুট পুরোপুরি যুক্ত করা হয়, 1 অন্যথায়।

সক্রিয় কোড:

ŒgḣLḂ$$€FµƬẠ
Œg            Group runs 'abbbcc'->['a','bbb','cc']
       €      For each of these strings:
      $       Monad{
     $            Monad{
   L                  Find the length...
    Ḃ                 ...mod 2. 
                      } -> [1, 1, 0] in this example.
  ḣ               Take this many characters from the string.
                  } -> [['a'], ['b'], []]
        F     Flatten -> ['a', 'b']
          Ƭ   Repeat...
         µ    The last monadic chain until a fixed point is reached.
           Ạ  All. If it is not a perfectly paired string, all elements in the 
              result of Ƭ will be nonempty and 1 is returned.
              If it is perfectly paired, the last element is [] which is falsy
              and 0 is returned.


0

জাভা 8, 158 156 154 বাইট

n->{for(;n.matches(".*(.)\\1.*");n=n.replaceAll("(.)\\1",""));return  n.isEmpty();}//};)(ytpmEsi.ruter;,"1).("(Aecalper.n=n;)"*.1).(*."(sehctam.n;(rof{>-n

একটি বুলিয়ান ( true/ false) প্রদান করে।

-২ বাইট ধন্যবাদ @ রজনগুলকে

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

ব্যাখ্যা:

n->{                              // Method with String parameter and boolean return-type
  for(;n.matches(".*(.)\\1.*");   //  Loop as long as the String still contains pairs
    n=n.replaceAll("(.)\\1","")); //   Remove all pairs
  return  n.isEmpty();}           //  Return whether the String is empty now
//};)(ytpmEsi.ruter;,"1).("(Aecalper.n=n;)"*.1).(*."(sehctam.n;(rof{>-n
                                  // Comment reversed of the source code,
                                  // minus the pairs: '\\';'ll';'\\';'""))';'n  n';'//'

1
নাম পরিবর্তন sকরে nএবং একটি দ্বিতীয় স্থান যুক্ত করে return s.isEmptyআপনি s nমন্তব্য থেকে সরাতে পারেন , মোট 2 টি বাইট সংরক্ষণ করে।
রাজনগুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.