आवर्त सारणी के साथ स्क्रैबल खेलें


13

आपको आवर्त सारणी से प्रतीकों के साथ टाइल का एक सेट मिला है। प्रत्येक प्रतीक एक बार दिखाई देता है। आप शब्दों को बनाने के लिए सोच रहे हैं लेकिन आप जानना चाहते हैं कि यह संभव है या नहीं।

चुनौती

अपनी पसंदीदा भाषा में एक प्रोग्राम लिखें जो इनपुट पैरामीटर के रूप में एक स्ट्रिंग में ले जाएगा। आप मान सकते हैं कि इनपुट शून्य नहीं है, इसमें कोई रिक्त स्थान नहीं है और इसमें ASCII वर्ण हैं।

आपके प्रोग्राम को उस स्ट्रिंग को लेना चाहिए और एक सत्य मान का उत्पादन करना चाहिए अगर यह शब्द तत्वों की आवर्त सारणी से प्रतीकों से बना हो सकता है, और यदि शब्द नहीं हो सकता है तो एक गलत मूल्य।

इस चुनौती को और अधिक कठिन बनाने के लिए, आप दो बार प्रतीक का उपयोग नहीं कर सकते हैं। इसलिए यदि आप नाइट्रोजन का उपयोग करते हैं तो आप फिर से उसी शब्द का Nउपयोग नहीं कर सकते हैं N

नियम

मानक खामियों की अनुमति नहीं है। आप 1-11 तत्वों (हाइड्रोजन से यूनोक्टियम) के प्रतीकों का उपयोग कर सकते हैं। आप यहां सभी तत्वों की एक सूची पा सकते हैं । आप चाहें तो किसी फ़ाइल या इनपुट तर्कों से प्रतीकों की सूची पढ़ सकते हैं।

परीक्षण के मामलों:

Laos - true (LaOs)
Amputation - true (AmPuTaTiON)
Heinous - true (HeINoUS)
Hypothalamus - true (HYPoThAlAmUS)
Singapore - true (SiNGaPoRe)
Brainfuck - true (BRaInFUCK)
Candycane - false

यह एक कोड गोल्फ चुनौती है, सबसे छोटा कोड जीतता है।

इससे पहले कि आप डुप्लिकेट के रूप में आगे बढ़ें: हालांकि यह इस चुनौती के समान लग सकता है , मुझे लगता है कि यह अलग है क्योंकि यह 'आवधिक तालिका से संभव होने वाले सभी शब्दों की एक सूची उत्पन्न नहीं करता है', यह है 'मध्यस्थता इनपुट में लें और निर्धारित करें कि क्या यह आवर्त सारणी से बनाया जा सकता है '


2
नहीं है यह जो अधिक निकट से संबंधित है, लेकिन खुद को चुनौती आप लिंक के डुप्लिकेट के रूप से बंद कर दिया था। मुझे लगता है कि आप केवल एक प्रतीक का उपयोग कर सकते हैं, हालांकि चुनौतियों के बीच सबसे बड़ा भेदभाव है। गोल्फिंग के संदर्भ में मुझे संदेह है कि सभी संभावित शब्दों को मजबूर करने और इनपुट के बीच में होने पर जाँच करने की तुलना में बेहतर तरीका है।
मार्टिन एंडर

1
"आप चाहें तो एक फ़ाइल से प्रतीकों की सूची पढ़ सकते हैं।" - हम इसे कैसे गिनेंगे? फ़ाइल का आकार कोड लंबाई में जोड़ा गया है? या हम इसे मुफ्त में उपयोग कर सकते हैं?
Qwertiy

2
क्या हम कार्यक्रम के तर्क के रूप में तत्वों की सूची ले सकते हैं?
एमिगा

1
@ क्वर्टी, फ़ाइल का आकार मुफ़्त है, लेकिन इसे पढ़ने के लिए बाइट्स नहीं हैं।
जेम्सन

9
बोरान, रेडियम, आयोडीन, नाइट्रोजन, फ्लोरीन, यूरेनियम, कार्बन, पोटेशियम।
नील

जवाबों:


3

05AB1E, 16 बाइट्स

œvyŒ€J})˜Ùvy²Q}O

व्याख्या की

œv                # for each permutation of the list of elements
  yŒ              # get all sublist of elements
    €J            # join as strings to form the words possible to spell
      })˜Ù        # convert to list of unique spellable strings
          vy²Q}   # compare each word with input word
               O  # sum giving 1 if the word is found, else 0

चेतावनी: बहुत धीमी गति से। मैं ऑनलाइन दुभाषिया में तत्वों के बहुत छोटे सबसेट पर परीक्षण की सलाह देता हूं।

पहले तर्क के रूप में तत्वों की सूची लेता है।
दूसरे तर्क के रूप में परीक्षण करने के लिए शब्द लेता है।
सच्चे के लिए 1 और झूठ के लिए 0 रिटर्न देता है।

तत्वों की एक छोटी सबसेट पर इसे ऑनलाइन आज़माएं


3

ब्रेकीलॉग , 7 बाइट्स

spc~@l.

इनपुट के रूप में प्रतीकों (सभी लोअरकेस) की सूची के साथ कॉल करें, और आउटपुट के रूप में शब्द, जैसे run_from_atom('spc~@l.', ["he":"n":"o":"li"], "Nohe").

चेतावनी: यह अत्यंत अक्षम है जब सभी प्रतीक सूची में होते हैं।

व्याख्या

spc        Create a string from a permutation of a subset of the Input
   ~@l.    This string can unify with the lowercase version of the Output

4
@Downvoter को समझाने की परवाह?
16:23

1

जावास्क्रिप्ट (फ़ायरफ़ॉक्स 48 या उससे पहले), 103 बाइट्स

f=(w,e=`
H
He
... (list of elements not included in the byte count) ...
Uus
Uuo
`)=>!w||e.match(/\w+/g).some(s=>!w.search(s,`i`)&&f(w.slice(s.length),e.replace(`
${s}
`,`
`)))

1

पायथ - 13 बाइट्स

बस जांचता है कि क्या आवर्त सारणी में सभी भागों में निचले हिस्से के इनपुट का कोई विभाजन है।

sm.A}RQd./rzZ

मोबाइल पर, इसलिए एक वास्तविक परीक्षण सूट स्थापित नहीं किया जा सका, लेकिन यह प्रयास करें


1
यह आपने फोन पर लिखा है!
जेम्सन

यह सुनिश्चित नहीं करता है कि एक तत्व कई बार उपयोग नहीं किया जाता है। उदाहरण।
पुरकाकूदरी

1

अजगर, 11 बाइट्स

s}RySQSM./z

इसे ऑनलाइन आज़माएं। परीक्षण सूट।

मेरे फोन पर लिखा है, लेकिन काम करना चाहिए। बड़ी संख्या में तत्वों या लंबी स्ट्रिंग के लिए बहुत धीमी।

व्याख्या

  • ./इनपुट के सभी विभाजन ( ) लें z
  • क्रमबद्ध ( S) प्रत्येक विभाजन ( M)।
  • प्रत्येक विभाजन ( R) के लिए, देखें कि क्या वह ( }) इनपुट के रूप में दी गई yक्रमबद्ध ( S) आवधिक तालिका की सभी उप-श्रेणियों ( ) की सूची में है Q
  • सम ( s) बूलियन की परिणामी सूची।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.