यदि आप पहले से ही नहीं जानते हैं, तो एक विचित्रता मूल रूप से एक 4-भाग संख्या है। इस चुनौती के प्रयोजनों के लिए, इसमें एक वास्तविक घटक और तीन काल्पनिक घटक हैं। काल्पनिक घटक प्रत्यय का प्रतिनिधित्व कर रहे i
, j
, k
। उदाहरण के लिए, 1-2i+3j-4k
के साथ एक चार का समुदाय है 1
असली घटक जा रहा है और -2
, 3
, और -4
काल्पनिक घटक जा रहा है।
इस चुनौती में आपको एक quaternion (उदा। "1+2i-3j-4k"
) के स्ट्रिंग रूप को गुणांक (उदा। [1 2 -3 -4]
) की सूची / सरणी में पार्स करना है । हालाँकि, कई अलग-अलग तरीकों से क्वाटर्नियन स्ट्रिंग को स्वरूपित किया जा सकता है ...
- यह सामान्य हो सकता है:
1+2i-3j-4k
- यह लापता शर्तें हो सकती हैं:
1-3k
,2i-4k
(तुम्हारी याद आ रही संदर्भ है, तो उत्पादन0
उन शब्दों के लिए) - यह गुणांक लापता हो सकता है:
i+j-k
(इस मामले में, इस के बराबर है1i+1j-1k
दूसरे शब्दों में, एक।i
,j
, याk
सामने एक संख्या एक मानी जाती है बिना1
डिफ़ॉल्ट रूप से सामने) - यह सही क्रम में नहीं हो सकता है:
2i-1+3k-4j
- गुणांक केवल पूर्णांक या दशमलव हो सकते हैं:
7-2.4i+3.75j-4.0k
पार्स करते समय ध्यान देने योग्य कुछ बातें हैं:
- हमेशा एक
+
या-
शर्तों के बीच होगा - आपको हमेशा कम से कम 1 शब्द के साथ वैध इनपुट दिया जाएगा, और बिना दोहराए पत्रों (बिना
j-j
एस) के - सभी नंबरों को वैध माना जा सकता है
- आप को पार्स अगर आप चाहते हैं के बाद एक और रूप में संख्या बदल सकते हैं (उदा।
3.0 => 3
,0.4 => .4
,7 => 7.0
)
पार्सिंग / क्वाटर्नियन बिलिन और मानक खामियों को रोक दिया जाता है। इसमें eval
कीवर्ड और फ़ंक्शंस शामिल हैं। इनपुट एक एकल स्ट्रिंग होगा और आउटपुट एक सूची, एक सरणी, व्हाट्सएप द्वारा अलग किए गए मान आदि होंगे।
चूंकि यह कोड-गोल्फ है , बाइट्स जीत में सबसे छोटा कोड।
टॉन्स ओ 'परीक्षण के मामले
1+2i+3j+4k => [1 2 3 4]
-1+3i-3j+7k => [-1 3 -3 7]
-1-4i-9j-2k => [-1 -4 -9 -2]
17-16i-15j-14k => [17 -16 -15 -14]
7+2i => [7 2 0 0]
2i-6k => [0 2 0 -6]
1-5j+2k => [1 0 -5 2]
3+4i-9k => [3 4 0 -9]
42i+j-k => [0 42 1 -1]
6-2i+j-3k => [6 -2 1 -3]
1+i+j+k => [1 1 1 1]
-1-i-j-k => [-1 -1 -1 -1]
16k-20j+2i-7 => [-7 2 -20 16]
i+4k-3j+2 => [2 1 -3 4]
5k-2i+9+3j => [9 -2 3 5]
5k-2j+3 => [3 0 -2 5]
1.75-1.75i-1.75j-1.75k => [1.75 -1.75 -1.75 -1.75]
2.0j-3k+0.47i-13 => [-13 0.47 2.0 -3] or [-13 .47 2 -3]
5.6-3i => [5.6 -3 0 0]
k-7.6i => [0 -7.6 0 1]
0 => [0 0 0 0]
0j+0k => [0 0 0 0]
-0j => [0 0 0 0] or [0 0 -0 0]
1-0k => [1 0 0 0] or [1 0 0 -0]
+
।
-0
पिछले दो उदाहरण के लिए कानूनी उत्पादन का एक हिस्सा?
eval
एक स्ट्रिंग में ले जाने के प्रतिबंध को परिभाषित करता है , कोड और / या इनपुट के रूप में व्याख्या करता है। कोई भी रूपांतरण इस बात के अंतर्गत नहीं आता है क्योंकि आप "test"
एक पूर्णांक प्राप्त करने के लिए एक पूर्णांक रूपांतरण फ़ंक्शन को स्ट्रिंग , लेकिन उदाहरण के लिए, test
एक सामान्य eval
फ़ंक्शन में कोड के रूप में व्याख्या की जाएगी । TLDR: eval: no, टाइप रूपांतरण: हाँ।
+
इनपुट में कभी अनावश्यक संकेत मिलेंगे ? जैसे+1k
:?