অন্যের ভিতরে কি কোনও চিঠি ফিট করে?


23

আপনি কি আমার মাদুরটি রং দ্বারা সঠিকভাবে গোছানো মনে আছে ?

আমার মাদুরটি রং দ্বারা সঠিকভাবে গোষ্ঠীযুক্ত

গতকাল আমি এটির দিকে চেয়ে ছিলাম এবং বুঝতে পেরেছিলাম যে কিছু চিঠি অন্যের মধ্যে ফিট করে। উদাহরণ: চিঠিটি Pযেখানে Rযায় সেখানে একটি চিঠি ফিট করে । সুতরাং এখানে একটি সহজ চ্যালেঞ্জ: দুটি অক্ষর দেওয়া, অক্ষরের কোনও একটি অন্যের মধ্যে ফিট হলে সত্যবাদী মানটি প্রত্যক্ষ করুন (সরাসরি বা ঘোরানো, তবে উল্টানো নয়), বা যদি তা না দেয় তবে একটি মিথ্যা মান। এটি হ'ল, যদি ইনপুট হয় [P,R]বা [R,P], আপনাকে অবশ্যই সত্যবাদিতা ফিরিয়ে দিতে হবে কারণ উভয় ক্ষেত্রেই একটি বর্ণ অন্যটির ভিতরে ফিট করে। যদি আপনি পেয়ে থাকেন তবে [L,U]অবশ্যই আপনাকে মিথ্যা প্রত্যাবর্তন করতে হবে কারণ এটি অন্যটির মধ্যে উপযুক্ত নয়।

বিধি

  • ইনপুটটি অবশ্যই অবশ্যই [0-9A-Z] এর ব্যাপ্তিতে দুটি বর্ণচিহ্ন হতে হবে, যেমনটি মাদুরের মধ্যেও সংখ্যা রয়েছে, যে কোনও রূপে আপনার প্রয়োজন (দুটি ইনপুট হিসাবে দুটি পৃথক অক্ষর, দুটি অক্ষর সহ একটি তালিকা, একটি স্ট্রিং 2 অক্ষর, যাই হোক না কেন)।
  • আউটপুট অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে (সত্যবাদী এবং মিথ্যা মানগুলি সর্বদা একই হতে হবে)।
  • ফিটিংয়ের টেবিলটি নীচে দেওয়া হয়েছে (নোটটি সর্বদা তার যথাযথ স্থানে ফিট করে মনে রাখবেন, কেবল [Y,Y]ইনপুট হিসাবে কিছু পাওয়ার ক্ষেত্রে ):

    char fits inside chars
    --------------------------------------------------------
       C             G,O
       F             B,E,P,R
       G             O
       I             0,1,7,B,D,E,F,H,K,L,M,N,O,P,R,T,V,W,X,Z
       L             E
       M             W
       P             R
       S             O
       V             A
       W             M
       0             O
       1             B,E,L
       3             O
       6             9,O
       8             O
       9             6,O
    

আমি দৃm়তার সাথে শপথ করে বলছি যে আমি আমার বাচ্চার মাদুরের প্রতিটি ফিটিং পরীক্ষা করেছি। (কপাল থেকে তার ঘাম শুকিয়ে যায়।)

এটি , তাই প্রতিটি ভাষার পক্ষে সংক্ষিপ্ততম কোডটি জয় পেতে পারে!

কিছু পরীক্ষার মামলা

input  output
-------------
[C,G]  truthy (C fits inside G)
[G,C]  truthy (C fits inside G)
[F,R]  truthy (F fits inside R)
[M,W]  truthy (both fit inside the other)
[O,S]  truthy (S fits inside O)
[T,T]  truthy (T fits in its place)
[E,V]  falsey (no fit found)
[P,L]  falsey

স্যান্ডবক্স পোস্ট । দয়া করে, আপনি যদি আরও বেশি ফিটিং মিস করি তবে আমাকে ক্ষমা করুন। ফিটিংস তালিকায় আমাকে সহায়তা করার জন্য forurous অনেক ধন্যবাদ ।




@ ইউজার ২২২২ 29২ না, কারণ 1এটিতে ফিট করার জন্য আপনাকে ফ্লিপ করা দরকার Fতবে এটি আমার মাদুরের মধ্যে অনুমোদিত নয়। :-)
চার্লি

4
চিত্রের ASCII- আর্ট গ্রাফ (অবশ্যই ফিট-ইন ট্রানজিটিভ)
ব্যবহারকারী 202729

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

উত্তর:


6

পাইথন 2 , 135 130 129 বাইট

-1 বাইট লিনকে ধন্যবাদ

lambda s:cmp(*s)%2*s[::cmp(*s)|1]in'OIH TIE XI7 RF O8 OGC LI0 O3 O96 VA O6 KI PI WI L1 WMI O0 RIB NI1 FE SOC VID ZIFB1 PF LE1 RP'

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

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

lambda*i:any({*i}&{a,c}=={*i}for a,b in zip('CFGILMPSVW013689','GO BEPR O 017BDEFHKLMNOPRTVWXZ E W R O A M O BEL O 9O O 6O'.split())for c in b)

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





2

জাভাস্ক্রিপ্ট 155 153 151 149 বাইট

আমি মনে করি এটি সত্য / মিথ্যা জন্য 1/0 সকল ক্ষেত্রে কাজ করে।

(c,f,q=1)=>"CGO,FBEPR,GO,I017BDEFHKLMNOPRTVWXZ,LE,MW,PR,SO,VA,WM,0O,1BEL,3O,69O,8O,96O".split`,`.some((v=>v[0]==c&v.includes(f)))|c==f|(q?F(f,c,0):0)

ব্যাখ্যা:

F=(
c, // input 1
f, // input 2
q=1 // variable used to execute F twice
)=>(
"CGO,FBEPR,GO,I017BDEFHKLMNOPRTVWXZ,LE,MW,PR,SO,VA,WM,0O,1BEL,3O,69O,8O,96O".split`,` 
                              // array of strings where [0] is input 1 and [>0] are the fittings
.some(                        // any element of the array meets:
(v=>v[0]==c&v.includes(f)))|  // input 1 equals [0] and input 2  exists in the lookup string OR
c==f|                         // input 1 equals input 2 OR
(q?F(f,c,0):0)                // input 2 fits inside input 1

let F=(c,f,q=1)=>"CGO,FBEPR,GO,I017BDEFHKLMNOPRTVWXZ,LE,MW,PR,SO,VA,WM,0O,1BEL,3O,69O,8O,96O".split`,`.some((v=>v[0]==c&v.includes(f)))|c==f|(q?F(f,c,0):0);
let tests = [
  ["C","G"],  //truthy (C fits inside G)
  ["G","C"],  //truthy (C fits inside G)
  ["F","R"],  //truthy (F fits inside R)
  ["M","W"],  //truthy (both fit inside the other)
  ["O","S"],  //truthy (S fits inside O)
  ["T","T"],  //truthy (T fits in its place)
  ["E","V"],  //falsey (no fit found)
  ["P","L"]   //falsey
];
tests.forEach((v)=>{console.log("F('"+v[0]+"','"+v[1]+"') = " + F(v[0],v[1]))});

পরিবর্তণের:

  • কামোরোসো ৯৪-তে 2 বাইট সংরক্ষণ করা হয়েছে
  • ক্রিস এমকে ধন্যবাদ 2 বাইট সংরক্ষণ
  • .some () এ লুকআপের পদ্ধতিটি পরিবর্তন করে 2 বাইট সংরক্ষণ করেছেন

cমানানসই fবা fমানানসই এই প্রত্যাবর্তন সত্য c? দেখে মনে হচ্ছে আপনি কেবল একটি কেস পরীক্ষা করেছেন।
চার্লি

fমানানসই হলে সত্যটি ফিরিয়ে আনতে কোড ঠিক করা হয়েছেc
ব্রায়ান এইচ।

আমি ব্যাখ্যা করার চেয়ে খুব ভাল নই, যদি কেউ এটিকে আরও পরিষ্কার করে কোনও সম্পাদনা করার পরামর্শ দিতে চান
ব্রায়ান এইচ।

আপনি 2 বাইট সংরক্ষণ করার includes(f)পরিবর্তে ব্যবহার করতে পারেন indexOf(f)>=0
kamoroso94

দুর্দান্ত, এমনকি এটি একটি জিনিস ছিল তাও জানতেন না: ডি
ব্রায়ান এইচ

1

জুলিয়া 0.6 , 139 বাইট

(a,b)->(a==b)|any(map(x->all(in.((a,b),x))|all(in.((b,a),x)),zip("OCFILMPV16",split("CGS0368 G BEPR 017BDEFHKLMNOPRTVWXZ E W R A BEL 9"))))

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

'ও' এর সাথে খাপ খায় এমন গোষ্ঠীগুলিকে গ্রুপ করে কিছু বাইট সংরক্ষণ করা হয়েছে। তবে বিপরীত ইনপুট পরীক্ষা করা খুব বেশি কোড ব্যবহার করে ...

ব্যাখ্যা:

  • zip(☐)একক অক্ষর "OCFILMPV16"এবং মেলানো অক্ষরের একটি স্ট্রিং সম্পর্কিত জিপ ।
  • .in(☐) উপাদান হিসাবে প্রয়োগ করা হয়, যেমন (in(a,'O'),in(b,"OCFILMPV16"))
  • all(.in(☐)) দু'জনকেই খুঁজে পেতে হবে ...
  • |উভয়ের জন্য a,bবা b,a...
  • any(map(☐)) জিপড তালিকার কমপক্ষে একটি উপাদানের জন্য।

1

কোটলিন , 147 139 বাইট

fun p(s:String)=setOf(s,s.reversed()).any{it.matches(Regex("(.)\\1|F[BEPR]|I[017BDEFHKLMNOPRTVWXZ]|1[BEL]|69|CG|LE|MW|PR|VA|O[CG69038S]"))}

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

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

আমি reg.ex. অপ্টিমাইজড না। খুব বেশি, সুতরাং এটি প্রয়োজনের চেয়ে দীর্ঘ হতে পারে

সম্পাদনা: reg.ex এ কয়েকটি বাইট সংরক্ষণ করা হয়েছে



0

পিএইচপি , 204 বাইট

-147 বাইট কারণ আমি 2 বাইটগুলি সরাতে ফিরে ক্যামেছিলাম কেবল এটির জন্য আমার কোডটিতে কয়েকটি বাগ এবং অব্যবহৃত ভেরিয়েবল রয়েছে! আমার কোডটি এখন অনেক খাটো।

<?php $a=fgets(STDIN);for($w=0;$w<2;$w++){if(strpos(explode(',','GO,BEPR,O,017BDEFHKLMNOPRTVWXZ,E,W,R,O,A,M,O,BEL,O,9O,O,6O')[strpos(CFGILMPSVW013689,$a[0])],$a[1])!==false){echo"t";break;}$a=strrev($a);}

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


0

রুবি, 140 বাইট

->c,t{x='CFGILMPSVW013689'.chars.zip('GO BEPR O 017BDEFHKLMNOPRTVWXZ E W R O A M O BEL O 9O O 6O'.split).to_h;p x.key?(c)&&x[c].include?(t)}

অজগর 3 উত্তর হিসাবে অনেক একই, কিন্তু একটি পৃথক মৃত্যুদন্ড কার্যকর সঙ্গে।

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