বিয়োগ এবং টিলডের একটি অভিব্যক্তি মূল্যায়ন করুন


16

রেজেক্সের সাথে মিলে যাওয়া একটি এক্সপ্রেশন দেওয়া হয়েছে /^[-~]*x$/, এটিকে শর্তাবলীর সাথে মূল্যায়ন করুন xএবং রেজেক্সের সাথে মিলে একটি স্ট্রিং আউটপুট করুন /^-?x[+-]\d+$/

উদাহরণস্বরূপ, স্ট্রিংটি -~xমূল্যায়ন করে x+1, যখন স্ট্রিংটি -~-xমূল্যায়ন করে -x+1এবং স্ট্রিংটি -~-~--xমূল্যায়ন করে x+2

আমরা xডান থেকে বামে স্ট্রিংটি শুরু করি এবং মূল্যায়ন করি। রূপান্তর করার -সময় শব্দটিকে অবহেলা করে ।~y-y-1

Testcases:

    x  x+0
   ~x -x-1
  -~x  x+1
 ~-~x -x-2
-~-~x  x+2
--~~x  x+0
  ~-x  x-1
 -~-x -x+1

এটি । বাইট জিতে সংক্ষিপ্ত উত্তর।

ইনপুট / আউটপুট ফর্ম্যাট কঠোর। "x"বাধ্যতামূলক।


আমরা আউটপুট করতে x+010পরিবর্তে x+10জন্য -~-~-~-~-~-~-~-~-~-~x? এটি দ্বিতীয় রেজেক্সের সাথে মেলে।

আপনি পারেন, যদিও আমি এর কোনও কারণ দেখছি না।
লিকি নুন

3
টিল্ডের বিভিন্ন ভাষায় আলাদা অর্থ রয়েছে। আপনার সম্ভবত স্পষ্ট করা উচিত যে আপনি পাইথন অর্থটির উদ্দেশ্য
লুইস মেন্ডো

3
@ লুইস মেন্ডো আমার তৃতীয় অনুচ্ছেদের শেষ বাক্যটি পড়ুন
লিকি নুন

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

উত্তর:



7

রেটিনা , 47 44 বাইট

+`--|~~

((~)|-)*x
$&+$#2
T`+`-`^~.*
~
-
--

এটি অনলাইন চেষ্টা করুন! সম্পাদনা করুন: @ মার্টিনইেন্ডারকে ধন্যবাদ 3 টি বাইট সংরক্ষণ করা হয়েছে Expanation:

+`--|~~

সংলগ্ন সদৃশগুলির জোড়া মুছুন।

((~)|-)*x
$&+$#2

এর সংখ্যার গণনা করুন ~যা আমাদের এই পরিমাপের পরিধি দেয়।

T`+`-`^~.*

প্রথম চরিত্রটি যদি হয় ~তবে শব্দটি negativeণাত্মক হওয়া উচিত।

~
-
--

যদি ~s এবং -s এর সংখ্যাটি বিজোড় হয় তবে xঅবশ্যই negative ণাত্মক হওয়া উচিত।


6

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

x=>['-'[x.length&1]]+'x'+['+'[(x=eval(x.join` `))<0^0]]+~~x

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


2
আমাকে 16 সেকেন্ড এবং 38 বাইট দ্বারা প্রহার করুন। সাবাশ.
লুক

-একটি সারিতে একাধিক ধারণকারী পরীক্ষার ক্ষেত্রে ব্যর্থ । (ie --~-~x)
লুক

@Luke। আপনার অর্থ কী তা আমি নিশ্চিত নই। আমার স্ক্রিপ্টও এই পরীক্ষাগুলির ক্ষেত্রে কাজ করে।

এটি আমার নতুন টেস্টকেসটিতে বেঁচে আছে: ডি
লিকি নুন

@ দ্য পাইরেট বে: উফ, এনভিএম তারপর ...
লুক



0

জাভা 8, 186 বাইট

s->{s=s.replaceAll("--|~~","");int l,i=(s.length()-(l=(s=s.replaceAll("-~","")).length()))/2,j=l-(s=s.replaceAll("~","")).length();return(j>0?"-"+s+"-"+-~i:s+"+"+i).replaceAll("--","");}

অবশ্যই উন্নতির জন্য জায়গা ..

ব্যাখ্যা:

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

s->{                              // Method with String as both parameter and return-type
  s=s.replaceAll("--|~~","");     //  Remove all "--" and "~~"
  int l,                          //  Temp integer to reduce bytes
      i=(s.length()-(l=(s=s.replaceAll("-~","")).length()))/2,
                                 //  Remove all "-~" and save count in `i`
      j=l-(s=s.replaceAll("~","")).length();
                                 //  Remove all remaining "~" and save count in `j`
   return(j>0?                   //  If `j` is larger than 0:
           "-"                   //   Start with a minus sign
           +s                    //   followed by the remaining `s`
           +"-"                  //   followed by another minus sign
           +-~i                  //   followed by `i+1`
          :                      //  Else:
           s                     //   Start with the remaining `s`
           +"+"                  //   followed by a plus sign
           +i                    //   followed by `i`
         ).replaceAll("--","");  //  And then remove all "--"
}                                // End of method
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.