सॉकेट - प्लग संगतता


19

इलेक्ट्रॉनिक्स के साथ यात्रा करना हमेशा मजेदार होता है, खासकर जब आपको उन्हें चार्ज करने के लिए एडॉप्टर की आवश्यकता होती है। आपकी चुनौती यह सुनिश्चित करने के लिए है कि किसी दिए गए प्लग को किसी दिए गए सॉकेट के साथ संगत किया जाए या नहीं, यह जांच कर यात्रा को आसान बना दिया जाए।

चुनौती

प्लग प्रकार और सॉकेट प्रकार को देखते हुए, एक मान लौटाएं जो इंगित करता है कि वे एक साथ काम करेंगे या नहीं।

संगतता तालिका

Socket  Accepted plugs  |  Plug  Accepting Sockets
A       A               |  A     A, B
B       A, B            |  B     B
C       C               |  C     C, D, E, F, H, J, K, L, N, O
D       C, D, E, F      |  D     D
E       C, E, F         |  E     D, E, F, H, K, O
F       C, E, F         |  F     D, E, F, H, K, O
G       G               |  G     G
H       C, E, F, H      |  H     H
I       I               |  I     I
J       C, J            |  J     J
K       C, E, F, K      |  K     K
L       C, L            |  L     L
M       M               |  M     M
N       C, N            |  N     N
O       C, E, F, O      |  O     O

तालिकाओं में एक ही जानकारी दिखाई जाती है, केवल ट्रांसपोज़्ड।

संदर्भ के लिए

इनपुट

  • इनपुट को दो अपरकेस या दो लोअरकेस अक्षर (आप चुनते हैं) के रूप में दिया जाएगा।

  • इनपुट हमेशा रहेंगे /[A-O]/(या /[a-o]/), अमान्य इनपुट को संभालने की कोई आवश्यकता नहीं है।

  • आप किसी भी क्रम में दो इनपुट स्वीकार कर सकते हैं (कृपया निर्दिष्ट करें)।

  • इनपुट किसी भी उचित प्रारूप (स्ट्रिंग, स्टड, सरणी, ...) में लिया जा सकता है ।

  • यदि आप एक ही तार में दोनों इनपुट लेते हैं, तो उन्हें एक से अधिक वर्णों द्वारा अलग किया जा सकता है और उनके आसपास कुछ भी नहीं होना चाहिए

  • अच्छा आदानों: "G,K", "EF", "a b",['l', 'o']

  • बुरा आदानों: "K l", "f(O)(I)",[1,5]

उत्पादन

  • आउटपुट किसी भी उचित प्रारूप में वापस किया जा सकता है ।

  • आउटपुट या तो होना चाहिए truthy/ falsyया 2 स्थिर मूल्यों में से एक

  • अच्छा आउटपुट: false/ any positive number, 1/ 2, 'T'/'F'

  • खराब आउटपुट: an even number/ an odd number, 1/more than 1

उदाहरण

प्रारूप का उपयोग socket, plug=> true/ false

A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true

मानक खामियों को अस्वीकार कर दिया जाता है।

यह इसलिए प्रत्येक भाषा में सबसे कम बाइट के साथ उत्तर जीतता है।


मेरा देश केवल C और F का उपयोग करता है, मैंने J को भी देखा है ... लेकिन इतने सारे क्यों हैं ???
एलेक्स रेजर

1
@AlexRacer यहाँ, कुछ पढ़ना है , वहाँ भी अजीब शेवर प्लग और इतालवी अतिरिक्त व्यापक प्लग और कुछ अन्य हैं। यूरोप्लग मास्टरप्लग थो है।
असोन तुहिद

जवाबों:



7

पायथन 3 , 76 बाइट्स

lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])

इसे ऑनलाइन आज़माएं!

क्रेडिट:


1
lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])76 बाइट्स के लिए?
नील

@ नील धन्यवाद मैंने उसे अपडेट किया।
नील

3
तो मज़ेदार हाहा बेटर नाइल
लुइस फेलिप डी जीसस मुनोज़

6

पायथन 3 , 72 बाइट्स 73 बाइट्स 70 बाइट्स

lambda p,s:s in{"A":"AB","C":y+"CJLN","E":y,"F":y}.get(p,p)
y="DEFHKO"

इसे ऑनलाइन आज़माएं!

संपादित करें: कुछ वसा काटने के लिए चास ब्राउन का धन्यवाद !


एक टाइपो मिला जिसने सी, सी को गलत तरीके से वापस किया।
मकिना.विदमो 19

अच्छा! q=फ़ंक्शन के अनाम होने के बाद से छोड़ा जा सकता है। इसके अलावा, एक अतिरिक्त जगह है। 70 बाइट्स। इसे ऑनलाइन आज़माएं।
चास ब्राउन

धन्यवाद! किसी कारण से मुझे लगा कि लंबोदर वाई पर कब्जा कर लेगा, यही कारण है कि मैंने इसे शुरू में ही लिखा था।
मचिना.विदमो

PPCG में आपका स्वागत है, और अच्छी पहली पोस्ट!
user202729

@ user202729: इससे पहले नहीं देखा था; जानने के लिए अच्छी टिप।
चास ब्राउन

4

C (gcc) (x86 आर्किटेक्चर), 76 60 बाइट्स

बदलावों के लिए अरनौल को बहुत धन्यवाद!

तर्क (प्लग, सॉकेट) क्रम में दिए गए हैं।

c[15]={6,0,56696,0,35184,35184};f(a,b){a=a==b|c[a-65]>>b&1;}

इसे ऑनलाइन आज़माएं!


X86 आर्किटेक्चर के बारे में आपके द्वारा यहां दिए गए संदर्भ का उपयोग करना : आप 3 बाइट्स को करके बचा सकते हैं 1<<~-b
अरनुलद

डी और टर्नरी ऑपरेटर से छुटकारा पाने के लिए 66 बाइट्स
अरनुलद

62 बाइट्स बिटमास्क को दोगुना करके। अब सभी भाषाओं की धड़कन लेकिन जेली और रेटिना! \ o /
अरनुलड

1
60 बाइट्स बस की तुलना द्वारा एक साथ
अरनौलड

सुझाएँ L"\6\0\xdd78\0襰襰"बजाय{6,0,56696,0,35184,35184}
ceilingcat


3

जावास्क्रिप्ट (Node.js) , 79 बाइट्स

S=>P=>P==S|P<'B'&S<'C'|P=='C'&'JLN'[K='includes'](S)|'CEF'[K](P)&'DEFHKO'[K](S)

एक करी फ़ंक्शन के रूप में आमंत्रित किया गया है f(socket)(plug)

इसे ऑनलाइन आज़माएं! (परिणामों के मैट्रिक्स को दर्शाने वाले टेस्टकेस शामिल हैं।)


3

जेली , 31 बाइट्स

Oḅ⁴_ȷe“j⁼⁽⁾ƇƑƓƘƝƤḄẸỊṂṢỴẒĊḞĿ‘o⁼/

एक मोनडिक लिंक [plug,socket]जो पात्रों की एक सूची को स्वीकार करता है, जो 1यदि संगत है या 0नहीं तो पैदावार देता है ।

इसे ऑनलाइन आज़माएं! या एक परीक्षण-सूट देखें (जो दो वर्गों को अलग करता है)।


2

PHP , 81 बाइट्स

<?list(,$s,$p)=$argv;$A=AB;$C=$E=$F=DEFHKO;$C.=JLN;echo+($p==$s||strpos($$p,$s));

इसे चलाने के लिए:

php -n -d error_reporting=0 <filename> <socket> <plug>

उदाहरण:

php -n -d error_reporting=0 socket_plug_compatibility.php F E

या इसे ऑनलाइन आज़माएं!

टिप्पणियाँ:

  • कुछ बाइट्स को बचाने के लिए, मैंने स्ट्रिंग आवरण के रूप में सिंगल / डबल कोटेशन के बिना स्ट्रिंग्स का उपयोग किया है। इस प्रकार, error_reporting=0विकल्प का उपयोग आउटपुट चेतावनियों को नहीं करने के लिए किया जाता है।
  • इनपुट केवल अपरकेस अक्षरों के साथ काम करता है।
  • संगतता के लिए आउटपुट 1 और गैर-संगतता के लिए 0 है।

कैसे?

हर प्लग समान सॉकेट के साथ संगत है। चार विशेष प्लग (ए, सी, ई, एफ) हैं जो कुछ और सॉकेट के साथ भी संगत हैं। विशेष प्लग के नाम के साथ चार स्ट्रिंग चर को उनके अतिरिक्त संगत सॉकेट्स की सूची रखने के लिए परिभाषित किया गया है।

यदि इनपुट प्लग और सॉकेट समान हैं या सॉकेट उस प्लग के लिए संगत सॉकेट की सूची में है, तो इसकी जाँच की जाती है। बाद की जाँच PHP के चर चर की मदद से की जाती है


2

जावास्क्रिप्ट ईएस 6, 66 65 64 चार्ट

p=>s=>p==s|{A:1,C:14172,E:8788,F:8780}[p]&(1<<parseInt(s,36)-11)

में बड़े अक्षरों ले जाता है pप्लग के लिए और sसॉकेट के लिए, रिटर्न falsy ( 0) या truthy ( 1, 2, 4, ..., 8192) मूल्य।

परीक्षा:

f=p=>s=>p==s|{B:1,C:14172,E:8788,F:8780}[p]&(1<<parseInt(s,36)-11)

console.log(`A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true`
.split`
`.map(x=>x.match(/(.), (.) => (\w+)/))
.every(([m,p,s,res])=>!!f(s)(p)==eval(res)))



@AsoneTuhid, धन्यवाद, अपडेट किया गया। लेकिन आपका लिंक अजीब है और खुला नहीं है।
क्वर्टी

यह TIO है। मेरे लिए खुलता है।
असुन तुहिद

@AsoneTuhid,ERR_CONNECTION_RESET
क्वर्टी

हटाने की कोशिश की https? क्या अन्य TIO लिंक काम करते हैं? मैंने मैक (क्रोम और सफारी) और एंड्रॉइड पर कोशिश की और यह ठीक काम करता है ...
Asone Tuhid

2

आर , 132 129 113 बाइट्स

function(S,P,`!`=utf8ToInt)"[<-"(diag(15),cbind(rep(!"",!"	"),!"
"),1)[-64+!P,-64+!S]

इसे ऑनलाइन आज़माएं!

निम्नलिखित मैट्रिक्स बनाता है और m[S,P]= 1 अगर TRUE, अर्क 0।

       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
 [1,]    1    1    0    0    0    0    0    0    0     0     0     0     0     0     0 
 [2,]    0    1    0    0    0    0    0    0    0     0     0     0     0    0     0
 [3,]    0    0    1    1    1    1    0    1    0     1     1     1     0    1     1
 [4,]    0    0    0    1    0    0    0    0    0     0     0     0     0    0     0
 [5,]    0    0    0    1    1    1    0    1    0     0     1     0     0    0     1
 [6,]    0    0    0    1    1    1    0    1    0     0     1     0     0    0     1
 [7,]    0    0    0    0    0    0    1    0    0     0     0     0     0    0     0
 [8,]    0    0    0    0    0    0    0    1    0     0     0     0     0    0     0
 [9,]    0    0    0    0    0    0    0    0    1     0     0     0     0    0     0
[10,]    0    0    0    0    0    0    0    0    0     1     0     0     0    0     0
[11,]    0    0    0    0    0    0    0    0    0     0     1     0     0    0     0
[12,]    0    0    0    0    0    0    0    0    0     0     0     1     0    0     0
[13,]    0    0    0    0    0    0    0    0    0     0     0     0     1    0     0
[14,]    0    0    0    0    0    0    0    0    0     0     0     0     0    1     0
[15,]    0    0    0    0    0    0    0    0    0     0     0     0     0    0     1

intToUtf8इस फ़ंक्शन का उपयोग करने और बदलने के साथ अनुक्रमणिका को संकुचित करके 3 बाइट्स सहेजे गए !। अधिक सुपाठ्य संस्करण के लिए इतिहास देखें।

16 बाइट्स @Giuseppe की बदौलत सहेजे गए!


क्या आपको इसमें आवश्यकता t=है rep?
Giuseppe

@Giuseppe लग रहा है जैसे मैं नहीं!
JayCe


@Giuseppe यह पूरी तरह से एक गूढ़ भाषा प्रस्तुत करने जैसा लगता है।
JayCe

0

पास्कल (एफपीसी) , 113 बाइट्स

var p,s:char;begin read(p,s);write((p=s)or(pos(p,'CEF')>0)and(pos(s,'DEFHKO')>0)or(pos(p+s,'AB CJ CL CN')>0))end.

इसे ऑनलाइन आज़माएं!

सभी मूल्यों के लिए परीक्षण

DEFHKOट्रेन के बाद ...

pos(string1,string2)की पहली घटना के लिए जाँच करता string1है string2और इसमें अपनी स्थिति देता है या 0 अगर यह मौजूद नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.