আপনার সঙ্গী সন্ধান করা


20

চ্যালেঞ্জ

2-টিউপলসের একটি স্বেচ্ছাসেবী তালিকা দেওয়া হয়েছে এবং সেই সমস্ত টিপলগুলির মধ্যে একটিতে একটি উপাদান রয়েছে, তার "অংশীদার" আউটপুট দেয়, অর্থাত্ প্রদত্ত aএবং [(i,j),...,(a,b),...,(l,m)]আউটপুট b। আপনি ধরে নিতে পারেন যে সমস্ত টিপলগুলি অনন্য এবং টিপলসের সমস্ত উপাদানগুলি স্ট্রিং। আরও ধরে নিন যে আপনার (x,y)এবং উভয়ই নেই (y,x)

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

Input                                                           Output

[("(", ")"), ("{", "}"), ("[", "]")], "}"                       "{"
[("I'm", "So"), ("Meta", "Even"), ("This", "Acronym")], "Even"  "Meta"
[("I", "S"), ("M", "E"), ("T", "A")], "A"                       "T"
[("test", "cases"), ("are", "fun")], "test"                     "cases"
[("sad", "beep"), ("boop", "boop")], "boop"                     "boop"

সবচেয়ে কম বাইট জিতেছে!


এছাড়াও, যদি ইনপুটটি বেশ কয়েকবার প্রদর্শিত হয় বা প্রদর্শিত না হয় তবে কী করবেন
লুইস মেন্ডো

আমি মনে করি না আমরা ফ্ল্যাট তালিকা হিসাবে ইনপুট নিতে পারি, তাই না? উদাহরণস্বরূপ, [a, b, c, d]পরিবর্তে [(a, b), (c, d)]। এটি আমার উত্তর বন্ধ করে এক টন বাইট করে দেবে। : পি
সম্পূর্ণরূপে

আমি আশা করি কিছু জিনিস পরিষ্কার করার জন্য সম্পাদনা করেছি এবং পরীক্ষার কেস যুক্ত করেছি। যদি কিছু ভুল হয় তবে নির্দ্বিধায় ফিরে যান।
সম্পূর্ণরূপে

@ টোটালিহুমান আমি বিশেষভাবে সম্পর্কে জিজ্ঞাসা(a,a) করেছি এবং জানানো হয়েছিল যে এটি হবে না । নাট তখনও এই সত্যটি নির্দিষ্ট করতে প্রশ্ন সম্পাদনা করেছে। তবে আপনি এ জাতীয় এন্ট্রি সহ একটি পরীক্ষার কেস যুক্ত করেছেন এবং এই সিদ্ধান্তটিকে উল্টো করে স্পেসিফিকেশন সম্পাদনা করেছেন - কেন? এটি একগুচ্ছ উত্তর ভেঙে গেছে।
জোনাথন অ্যালান

1
@ টোটালিহুমান আমি "কিছু ফিরিয়ে আনুন, ক্রাশ করুন, যাই হোক না কেন" এর অর্থ এটি গ্রহণ করেছি, বিশেষত যেহেতু পোস্টটির পরে তত্ক্ষণাত সবকিছু অনন্য বলে বলে সংশোধন করা হয়েছিল ।
জোনাথন অ্যালান

উত্তর:


8

জাপট, 6 বাইট

স্ট্রিং বা পূর্ণসংখ্যার সাথে কাজ করে।

æøV kV

এটা পরীক্ষা করো


ব্যাখ্যা

অ্যারে Uএবং স্ট্রিং / পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট V

æ

এতে প্রথম এলিমেন্ট (সাবহারে) পান U...

øV

রয়েছে V

kV

Vফলস্বরূপ একক-উপাদান অ্যারে সরান এবং সুস্পষ্টভাবে ফিরিয়ে দিন।


এটাই ... আমি আক্ষরিক অর্থেই সেই একই দৃশ্য, একই ইনপুট এবং সমস্ত চেষ্টা করেছিলাম। আমি অবশ্যই কিছু মিস করেছি ... সম্পাদনা: ঠিক আছে, আমি তখনকার fপরিবর্তে ব্যবহার করছিলাম æ। দুহ: পি
ইটিএইচ প্রোডাকশনগুলি

@ ইথ প্রডাকশনস: একটি দুর্দান্ত পরিবর্তন ঘটায় - সাধারণত আমিই সেই ব্যক্তি যাঁর কথা ভুলে যায় æএবং এর সাথে বিভ্রান্ত করার চেষ্টা করে f! : ডি
শেগি

8

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

x!((a,b):c)|x==a=b|x==b=a|1<2=x!c

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

একটি বাইনারি অপারেটর সংজ্ঞায়িত করে !, যা তার বাম আর্গুমেন্ট হিসাবে xটাইপের মান value এবং তার ডান আর্গুমেন্ট হিসাবে tuples একটি তালিকা (τ, τ)। সংজ্ঞায়িত প্যাটার্ন প্রদত্ত তালিকার মাথা (a,b)এবং লেজের cসাথে মিলছে ; যদি x==aতা bফেরত দেওয়া হয়; যদি x==bতা aফেরত দেওয়া হয়, এবং অন্যথায় আমরা পুনরাবৃত্তি করে তালিকার বাকী অংশটি সন্ধান করি।

  'f' ! [('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h')]
 'f' ! [('c', 'd'), ('e', 'f'), ('g', 'h')]
 'f' ! [('e', 'f'), ('g', 'h')]
 'e'

(তালিকায় যদি কোনও "অংশীদার" না থাকে তবে এটি ক্রাশ হবে, কারণ কী x![]হওয়া উচিত তা আমরা নির্ধারণ করি নি didn't )


5

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

e=>g=([[b,c],...a])=>e==b?c:e==c?b:g(a)

অ্যারেগুলির প্রবেশ এবং অ্যারেটিকে তর্কিত আর্গুমেন্ট হিসাবে গ্রহণ করে। আমি করতে পারি সেরা নন-রিকার্সিভ ভার্সনটি ছিল 44 বাইট:

e=>a=>a.find(a=>a.includes(e)).find(b=>b!=e)

এখানে একটি 41-বাইট নন-রিকারসিভ সমাধান:a=>b=>a.map(e=>b=e[1-e.indexOf(b)]||b)&&b
রিক হিচকক

আপনি ... আপনি অবশেষে তরকারী হিসাবে ছেড়ে দিয়েছেন ?! : ও
শেগি

@ শেগজি সাধারণত আমি (a,b)=>=> a=>b=>প্রকারের কার্যিংয়ের জন্য বিরক্ত করি না , তবে পুনরাবৃত্তিযোগ্য সংস্করণটি পুনরাবৃত্ত সংস্করণ থেকে শুরু হয়েছিল, যা তরকারী হয়েছিল কারণ আমি পুনরাবৃত্ত কলটিতে 2 বাইট সংরক্ষণ করতে সক্ষম হয়েছি (কার্চিং নিজেই ব্যয় করে a বাইট)।
নীল

5

এমএটিএল , 4 14 5 6 বাইট

yY=P)u

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

ইনপুট হিসাবে একটি অ্যারে হয় [{a;b},{c;d}]। ওপি আসলে কী অনুমতি দেয় তা নির্ধারণ করার সময় বাইটকাউন্টগুলি ব্যাপকভাবে ওঠানামা করে।

y     % Implicitly input tuples T and 'lonely element' E, duplicate from below to get [T E T] on the stack
 Y=   % String comparison, element wise, between T and E. Yields a boolean array with a 1 at the correct location.
   P  % Flip this array vertically, to put the 1 at the 'partner' of E.
    ) % Select this partner from the bottom T.

আমি একটি 4-বাইট সংস্করণ দিয়ে শুরু করেছি যা কেবলমাত্র একক-অক্ষরযুক্ত স্ট্রিংগুলি পরিচালনা করতে পারে যা মূল চ্যালেঞ্জের একমাত্র টেস্টকেস। এটি যখন অবৈধ হিসাবে প্রমাণিত হয়েছিল, আমি খুব দীর্ঘ 14-বাইট সংস্করণ তৈরি করেছি, যা দুর্দান্ত এবং হ্যাকি ছিল (পুনর্বিবেচনার ইতিহাসটি পরীক্ষা করে দেখুন), আমাকে একটি বাগ আবিষ্কার করতে সক্ষম করে, এবং তারপরে Y=উপযুক্ত ইনপুট সহ সম্পূর্ণ অপ্রয়োজনীয় বলে প্রমাণিত হয়েছিল , আমার মূল 4-বাইটের পাশাপাশি কাজ করেছে y=P)


4

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

lambda x,y:dict(x+map(reversed,x))[y]

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

প্রোটন , 31 বাইট

a,b=>dict(a+map(reversed,a))[b]

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

(এই দুটি উত্তর এতই সমান যে আমি পুনরায় পরিবর্তন এড়াতে এগুলি একসাথে পোস্ট করছি)


পুনঃনামকরণ reversedকরতে reverse-1 বাইট জন্য প্রোটন হবে। : গুলি: পি আরও গম্ভীরভাবে, reverseএকটি আরও ভাল নাম, না? : পি
সম্পূর্ণরূপে

@ টোটালিএফ্লপিপিডিস্ক হয়ত / শ্রাগ করে তবে আমি পাইথন নির্মিত বেশিরভাগ বিল্টিনের নাম পরিবর্তন করিনি যা প্রোটনের কাছে চলে যায়
হাইপারনিউটারিনো


দুঃখিত আমার খারাপ, মন্তব্যটি উপেক্ষা করুন।
সানগাইজস


2

পাইথন 2 , 59 45 42 বাইট

-14 বাইট ধন্যবাদ এমিগিনার কাছে। -3 বাইট মাল্টেসেনকে ধন্যবাদ।

lambda l,v:sum(l,())[sum(l,()).index(v)^1]

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

তবুও তরকারি ব্যবহার করতে চাই। ; -;



আহা, জানার মতো কাজ করার একটি ছোট উপায় ছিল y+[1,-1][y%2]। ঠিক মনে হয় নি যে এটি কিছুটা খারাপ ছিল ... ধন্যবাদ!
সম্পূর্ণরূপে

2

সি ++, 179 বাইট

#include<vector>
#include<string>
#define S std::string
S f(std::vector<std::pair<S,S>>s,S t){for(auto&a:s){if(a.first==t)return a.second;if(a.second==t)return a.first;}return"";}

সি ++ ডাব্লু / মানচিত্রের ডেটা টাইপ, 162 বাইট

#include<map>
#include<string>
#define S std::string
S f(std::map<S,S>s,S t){for(auto&a:s){if(a.first==t)return a.second;if(a.second==t)return a.first;}return"";}

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


2

পাওয়ারশেল, 36 বাইট

param($a,$c)$a|?{$c-in$_}|%{$_-ne$c}

ইনপুট যুক্ত উপাদানটি সন্ধান করে, তারপরে ইনপুটটি বাদ দিয়ে 'অন্যান্য' উপাদানটি পায়, পাওয়ারশেলের সবচেয়ে আশ্চর্য অ্যারে পরিচালনা নেই তবে এর জন্য একটি বিল্ট-ইন থাকতে পারে যার বিষয়ে আমি অবগত নই।

.\Partner.ps1 (("I'm","So"),("Meta","Even"),("This","Acronym")) "Even"
Meta

এই পদ্ধতির ("boop", "boop")পরীক্ষার ক্ষেত্রে কাজ করে না ।
অ্যাডমবর্কবার্ক

2

Röda , 30 বাইট

f a{[(_+"")[1-indexOf(a,_1)]]}

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

ব্যাখ্যা:

f a{[(_+"")[1-indexOf(a,_1)]]}
f a{                         } /* Function f(a)                         */
                               /* For each pair _1 in the stream:       */
              indexOf(a,_1)    /*   Index of a in _1 or -1 if not found */
            1-                 /*   Subtract from 1 to get the index of
                                     the other value in the pair or 2 if
                                     a is not in the pair               */
     (_+"")                    /*   Append "" to _1                     */
           [               ]   /*   Get element the other element or "" */
    [                       ]  /*   Push it to the straem               */
                               /* All values in the stream are printed  */

2

গণিত 27 24 বাইট

Casesপ্যাটার্নের সাথে মেলে এমন তালিকার উপাদানগুলি খুঁজে বের করে। একটি তীর দিয়ে ব্যবহার করা হলে, উপাদানগুলির সাথে মেলে নিদর্শনগুলি রূপান্তর করা যায় can

Cases[{#,x_}|{x_,#}:>x]&

ব্যবহার:

%[3][{{1, 2}, {3, 4}}]

ব্যাখ্যা: এই উদাহরণস্বরূপ, প্রথম আর্গুমেন্টের মুখোমুখি হওয়ার পরে, 3, ফাংশনটি হয়ে যায় Cases[{3,x_}|{x_,3}:>x]যা এটির অপারেটর ফর্ম Casesহয় তারপর 2 য় আর্গুমেন্টে প্রয়োগ করা {{1, 2}, {3, 4}}হয়, এভাবে 3 এর সহকর্মী নির্বাচন করা হয়, এটি অ্যাবসিসে বা অর্ডিনেট পজিশনে থাকুক না কেন। উল্লেখযোগ্যভাবে, এই ফাংশনটি সমস্ত সাহাবীদের তালিকাভুক্ত করবে যদি বাস্তবে প্রথম যুক্তি ২ য় যুক্তির মধ্যে একাধিকবার উপস্থিত হয়, অন্য কথায়, এটি বর্ণিত প্রশ্নের অনুমানের বাইরে কিছুটা এগিয়ে যায়।

ঘেরযুক্ত গ্লিফগুলি অবশ্যই স্কিগলি ব্র্যাকস হতে হবে। @ নোটাট্রির "কারিঙ" পরামর্শের সাথে 3 বাইট সংরক্ষণ করা হয়েছে


1
আপনার যদি সংস্করণ 10 রয়েছে এবং আপনি কারিঙ করে ইনপুট নেন , আপনি 3 বাইট সংরক্ষণ করতে পারেন: Cases[{#,x_}|{x_,#}:>x]&যেমন ব্যবহার করুন%[3][{{1,2},{3,4}}]
গাছ নয়

আপনি এটাকে একটু ব্যাখ্যা করতে পারবেন?
নাট স্টিমেন

2

আর , 47 42 বাইট

function(v,a)a[(i=min(which(v==a)))+(i%%2*2-1)]

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

একটি ম্যাট্রিক্স বা একটি সরাসরি ভেক্টর উপর কাজ করে। v = অনুসন্ধান মান, a = টিপল অ্যারে।


@ সাঞ্চাইজস ধন্যবাদ, এখনই সব ঠিক হয়ে গেছে।
মিকিটি

2

জেলি , 6 বাইট

ċÞṪ⁻ÞṪ

বামদিকে তালিকার অংশীদার এবং ডানদিকে হারিয়ে যাওয়া অংশীদারকে অংশীদারকে ফিরিয়ে আনতে একটি ডায়াডিক লিঙ্ক।

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

কিভাবে?

ċÞṪ⁻ÞṪ - Link: list, partners; item, lost-partner
 Þ     - sort (the tuples) by:
ċ      -   count occurrence of lost-partner
  Ṫ    - tail (gets the tuple containing the lost-partner)
    Þ  - sort (that tuple's items) by:
   ⁻   -   not equals (non-vectorising version)
     Ṫ - tail (get the other one, or the rightmost one if they were equla)

নতুন টেস্টকেস যুক্ত করা হওয়ায় এটি অবৈধ।
সংঘবদ্ধ

1
এটি নির্দেশ করার জন্য ধন্যবাদ - আমি সম্পাদককে প্রশ্নের অধীনে মন্তব্য করেছি (আমি বিশেষত ওপি সম্পর্কে জিজ্ঞাসা করেছি (a,a)এবং জানিয়েছিলাম আমাদের এটি পরিচালনা করার দরকার নেই)। আমি নিশ্চিত যে আমি এটি সংশোধন করতে পারব, তবে স্পেসিফিকেশনটি এখন যেমন ছিল ঠিক তেমনটি কিনা তা সম্পর্কে আমি নিশ্চিত নই।
জোনাথন অ্যালান

হুঁ, যদিও পুনর্বিবেচনার ইতিহাসটি দেখে মনে হচ্ছে আমাদের কেবল স্ট্রিংগুলিকে সমর্থন করা দরকার যাতে এটি যেভাবেই
জনাথন অ্যালান

এখন নতুন অনুমান নিয়ে কাজ করে।
জোনাথন অ্যালান

এটি ছিল "ওহ ওয়েল" মন্তব্যেরও আমার ব্যাখ্যা, তবে স্পষ্টতই এটি ছিল না।
সান্চাইজস


1

হাস্কেল , 65 62 বাইট

c#(a,b)|a==c=b|1>0=a
x%l=x#(snd(span(\(a,b)->a/=x&&b/=x)l)!!0)

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

ব্যাখ্যা

এটি xটিপলের দ্বারা থাকা প্রথম উদাহরণটি সন্ধান করতে স্প্যান ব্যবহার করে । এটি তখন টিউলের প্রথম উপাদানটিকে সমান না করে এবং দ্বিতীয়ত অন্যথায় ধরে ফেলবে।

হাস্কেল ল্যাম্বডাবোট, 59 56 বাইট

c#Just(a,b)|a==c=b|1>0=a
x%l=x#find(\(a,b)->a==x||b==x)l

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

ব্যাখ্যা

এই ব্যবহারের Data.Listগুলি firstফাংশন দ্বারা ব্যবহৃত বাইট উপর কমান (!!0).snd.spanতবে কারণ firstরিটার্ন একটি Maybeআমরা যোগ করতে হবে Justআমাদের প্যাটার্ন খেলায় #


2
এটি overthink করবেন না… x!((a,b):c)|x==a=b|x==b=a|1<2=x!c33 বাইট।
লিন

1
@ লিন এগিয়ে যান এবং এটি পোস্ট করুন। আমি এটি না ভেবে কিছুটা বোকা বোধ করি তবে এটি সত্যই আপনার উত্তর।
গম উইজার্ড

মেলা, পোস্ট ^^
লিন

1

05 এ বি 1 ই , 7 বাইট

.åÏ`¹K`
  Ï      # keep only pairs that contain the first input
   `     # flatten
    ¹K   # remove the first input
      `  # flatten

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

বিকল্প 7 বাইট সমাধান

˜DIkX~è
˜        # deep flatten
 D       # duplicate
  Ik     # get the index of the second input in this list
    X^   # XOR with 1
      è  # get the element at this index

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


˜D²k>è6 এর জন্য, যদি না 1 এর সাথে XOR'ing এর নির্দিষ্ট কারণ থাকে?
ম্যাজিক অক্টোপাস আরন

@ ম্যাজিক অ্যাক্টপাস ইউরান: কারণটি হ'ল এমনকি সূচকগুলি হ্রাস হওয়া এবং বিজোড় সূচকগুলি বৃদ্ধি করা উচিত।
এমিগানা

আমি সেখানে যা লিখেছি তার বিপরীত ব্যতীত ...
এমিগিনা


1

জাভা 8, 78 বাইট

একটি ল্যামডা (curried) থেকে Stream<List<String>>থেকে একটি ল্যামডা করার Stringজন্য String(যদিও অন্তর্নিহিত টাইপিং নির্বিচারে তালিকার জন্য কাজ করার জন্য এই অনুমতি দেয় ঘটবে)। ভাষার কোনও ডেডিকেটেড টিপল ক্লাস নেই এবং আমি স্ট্যান্ডার্ড লাইব্রেরিতে কোনওটি সম্পর্কে অবগত নই, সুতরাং ইনপুট জোড়গুলি তালিকাগুলি হিসাবে উপস্থাপিত হয়। নিযুক্ত করা যেতে পারে Function<Stream<List<String>>, Function<String, String>>

l->s->l.filter(p->p.contains(s)).map(p->p.get(1-p.indexOf(s))).findAny().get()

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

আমি সর্বশেষ 6 বাইট সংরক্ষণের ক্রেডিট করব যিনি আমাকে বোঝাতে পারেন যে এটি ফিরিয়েছে Optional বৈধ। আমি নিজেকে বোঝাতে সক্ষম হইনি।

আমার জন্য এই সমাধানটির আকর্ষণীয় অংশগুলির একটি হ'ল স্ট্রিম থেকে আউটপুট পাওয়ার সবচেয়ে সহজ উপায় নির্ধারণ করা। আমি বিবেচিত reduce, findFirstএবং min/ max, কিন্তু তেমন কাউকে স্বজ্ঞাত চেয়ে খাটো ছিল findAny


1

রুবি, 31 বাইট

->a,e{e=*e;a.find{|p|p!=p-e}-e}

একটি সিঙ্গলটন অ্যারে প্রদান করে।


1

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

গত রাতে এই নিয়ে এসেছিল তখন লক্ষ্য করলেন নীল আমাকে আরও ভাল জেএস সমাধানে মারধর করেছে; অনুভূত আমি পাশাপাশি এটি পোস্ট করতে পারেন।

স্ট্রিং এবং পূর্ণসংখ্যার সাথে কাজ করে।

a=>n=>a.reduce((x,y)=>y[1-y.indexOf(n)]||x,0)


1

সি # (.নেট কোর) , 101 100 + 18 বাইট

কয়েকটা বাইট হ্রাস করতে সহায়তা করে গ্রেজগোর্জ পুয়াওস্কি আপনাকে ধন্যবাদ।

x=>y=>x.Where(z=>z.Item1==y).FirstOrDefault()?.Item2??x.Where(z=>z.Item2==y).FirstOrDefault()?.Item1

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

সি # (.নেট কোর), 122 121 120 বাইট

x=>y=>{for(int i=0;i<x.Length;i++){if(x[i].Item1==y){return x[i].Item2;}if(x[i].Item2==y){return x[i].Item1;}}return"";}

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


x=>y=>এর চেয়ে কম হয় (x,y)=>( Func<a, b, c>হয়ে যায় Func<a, Func<b, c>>এবং ফাংশন কল f(a, b)হয়ে যায় f(a)(b)) - দুর্দান্ত উত্তর বিটিডব্লিউ!
গ্রেজগোর্জ পুয়াওস্কি

এছাড়াও প্রথম উত্তরের জন্য, ফাংশনটি নিজেই System.Linq ব্যতীত অন্য কিছু ব্যবহার করে না, যাতে আপনি উত্তর দেওয়ার জন্য কেবল 18 বাইট যুক্ত করতে পারেন ( using System.Linq;বনাম namespace System.Linq{})
গ্রেজগোর্জ পুয়াউস্কি

@ গ্রজেগোর্জপুয়াউস্কি সাহায্য এবং প্রশংসা করার জন্য আপনাকে ধন্যবাদ, আশা করি আমি উত্তরগুলি
স্নোফের

1

হুশ , 10 বাইট

→ḟo=⁰←S+m↔

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

Ungolfed / ব্যাখ্যা

            -- example input:                         4 [(1,2),(3,4)]
      S+    -- concatenate list with                -
        m↔  --   itself but all pairs flipped       -   [(1,2),(3,4),(2,1),(4,3)]
 ḟo         -- find first occurence where           -
   =⁰←      --   the left element is equal to input -   (4,3)
→           -- get the right element                -   3

দ্রষ্টব্য : উপরের উদাহরণটি কেবল পঠনযোগ্যতার জন্য পূর্ণসংখ্যার উপর কাজ করে, প্রকারটি নিজেই কিছু যায় আসে না (যতক্ষণ আপনি এটি তুলনা করতে পারবেন)।


1

সুইফট 4 , 43 বাইট

{a,m in a.flatMap{$0==m ?$1:$1==m ?$0:nil}}

আউটপুটটি একটি অ্যারে, যা হয় খালি (কোনও অংশীদার পাওয়া যায় নি), বা তার একটি উপাদান রয়েছে (অংশীদার)।

পরীক্ষার কেস:

let testcases: [(pairs: [(String, String)], match: String, expected: String)] = [
    (
        pairs: [("(", ")"), ("{", "}"), ("[", "]")],
        match: "}", expected: "{"
    ),
    (
        pairs: [("I'm", "So"), ("Meta", "Even"), ("This", "Acronym")],
        match: "Even", expected: "Meta"
    ),
    (
        pairs: [("I", "S"), ("M", "E"), ("T", "A")],
        match: "A", expected: "T"
    ),
    (
        pairs: [("test", "cases"), ("are", "fun")],
        match: "test", expected: "cases"
    ),
    (
        pairs: [("sad", "beep"), ("boop", "boop")],
        match: "boop", expected: "boop"
    ),
]

for (caseNumber, testcase) in testcases.enumerated() {
    let actual = f(testcase.pairs, testcase.match).first

    assert(actual == testcase.expected,
        "Testcase #\(caseNumber) \((testcase.pairs, testcase.match)) failed. Got \(String(reflecting: actual)), but expected \(testcase.expected)!")
    print("Testcase #\(caseNumber) passed!")
}

1

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

{_?~A=G|_X]_?~A=;|Z=B]~B=C|Z=A

কিউবিআইসি তালিকা এবং টিপলগুলিতে শক্তিশালী নয়। উপরের কোডটি aকমান্ড লাইন প্যারামিটার হিসাবে গ্রহণ করে , তারপরে টিপলসের জন্য জোড়ায় ব্যবহারকারী ইনপুট চেয়েছে। যখন একটি খালি উপাদান দেওয়া হয়, তখন এটি আউটপুট হয়b

নমুনা রান

Command line: Even
I'm
So
Meta
Even
This
Acronym

Meta

ব্যাখ্যা

{           DO infinitely
_?          Ask for part 1 of tuple, A$
~A=G|  ]    IF A$ is empty (equal to G$, which is undefined and therefore "") THEN
     _X         Quit
_?          Ask for part 2 of tuple, B$
~A=;|       IF part 1 of the tuple equals teh cmd line param (loaded in as C$) THEN
    Z=B]        set Z$ to part 2 of the tuple (Z$ gets printed when QBIC quits)
~B=C|Z=A    IF part 2 of the tuple matches input, set Z$ to part 1
            The final IF and the DO loop are closed implicitly

বিকল্প সংস্করণ, 22 বাইট

{_?_?~A=;|_XB]~B=C|_XA

এটি মূলত লম্বা সংস্করণ হিসাবে একই কাজ করে তবে এটি কোনও ম্যাচ খুঁজে পেলে সঙ্গে সঙ্গেই প্রস্থান করে qu আমি এটিকে বিকল্প হিসাবে তালিকাভুক্ত করেছি, কারণ আপনি এই প্রোগ্রামটিতে সমস্ত টিপলগুলিকে ইনপুট করতে পারবেন না যদি আপনি তাড়াতাড়ি ছাড়েন।


0

গণিত, 50 বাইট

(t={#2};Select[Complement[#,t]&/@#,Length@#==1&])&

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


এটি {'boop','boop'}টেস্টকেসের জন্য কাজ করে না ।
সান্চাইজস

আমি যখন উত্তর দিয়েছি এবং প্রশ্নটি [এ, এ] টিপলস সম্পর্কে ছিল না তখন @ সানচিইজস "বুপ" ছিল না। বুপ-সম্পাদনা বৈধ হওয়ার আগে আমি উত্তরগুলি বিশ্বাস করি
J42161217

ওপির স্পষ্টকরণের নীতিটি আমি বিদ্যমান উত্তরকে বাতিল করে দিচ্ছি না; এটি সম্পাদনা সম্পর্কে একটি মাথা আপ ছিল।
সান্চাইজস

0

স্ট্যাকড , 21 বাইট

[:$revmap,KeyArray\#]

এটি অনলাইন চেষ্টা করুন! এটি স্ট্যাক থেকে ইনপুট নেয় এবং স্ট্যাকের আউটপুট ছেড়ে দেয়। প্রসারিত, দেখে মনে হচ্ছে:

[ : $rev map , KeyArray \ # ]

ব্যাখ্যা

আসুন (('sad' 'beep') ('boop' 'boop'))এবং 'boop'ইনপুট হিসাবে নেওয়া যাক । তারপরে, এর মতো একটি অ্যারে দ্বারা নির্মিত হয় :$revmap,:

(( 'sad' 'beep')
 ('boop' 'boop')
 ('beep'  'sad')
 ('boop' 'boop'))

অর্থাৎ, অ্যারের একটি অনুলিপি মানচিত্র, প্রতিটি সদস্য বিপরীত হয় এবং দু'জনকে এক সাথে সংযুক্ত করা হয়। KeyArrayপরিবর্তে প্রদত্ত মানগুলির মধ্যে একটি হ্যাশ তৈরি করে, যেমন:

KeyArray [ sad => beep, boop => boop, beep => sad, boop => boop ]

তারপরে, \অনুসন্ধানের স্ট্রিংটিকে স্ট্যাকের শীর্ষে নিয়ে আসে এবং কীআররে থেকে মেলে কীটি পাওয়া যায়# । এটি কেবল একটি মান দেয়, তাই কীআর্রে ডুপ্লিকেট কীটি নিয়ে উদ্বিগ্ন হওয়ার দরকার নেই।

অন্যান্য পন্থা

32 বাইট: (স্ট্যাক থেকে ইনপুট, STDOUT এ আউটপুট) [@x:$revmap,uniq[...x=$out*]map]

36 বাইট: {%x[y index#+]YES 0# :y neq keep 0#}

38 বাইট: [@x:$revmap#,[KeyArray x#]map:keep 0#]

46 বাইট: [@x:KeyArray\$revmap KeyArray,[x#]map:keep 0#]


0

এক্সেল, 18 বাইট

বেনামী এক্সেল ওয়ার্কবুক ফর্মুলা যে হিসাবে ইনপুট নেয় <Lookup Value>পরিসীমা থেকে A1, <Key Array>পরিসীমা থেকে B:Bএবং <Def Array>পরিসীমা থেকে C:C, এবং আউটপুট কলিং কক্ষের লুকআপ মান সঙ্গে যুক্ত সংজ্ঞা মান

=VLOOKUP(A1,B:C,2)

সম্ভব হলে নমুনা I / O অন্তর্ভুক্ত করা হবে

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