मैं आपका BIDMAS देखता हूं और आपको BADMIS बढ़ाता हूं
चुनौती
उनके बीच ऑपरेटरों के साथ संख्याओं के एक सेट को देखते हुए: "5 + 4 * 9/3 - 8", बुनियादी कार्यों के क्रम के प्रत्येक क्रमपरिवर्तन के लिए अभिव्यक्ति के सभी संभावित परिणाम लौटाएं: [/, *, +, +, -]।
नियम
- मानक खामियों से मना किया
- आई / ओ
- इनपुट को इनफ़िक्स ऑपरेशंस के साथ ऑर्डर करना होगा, लेकिन फिर भी यह सबसे आसान है (स्ट्रिंग या एरे)
- आपको अपरेंटिस ऑपरेटरों का समर्थन करने की आवश्यकता नहीं है (उदाहरण के लिए "-3 * 8 / +2")
- इंटेगर को उन भाषाओं के लिए फ़्लोट से बदला जा सकता है, जो स्पष्ट रूप से पार्स प्रकार (जैसे 45 by 45.0)
- आउटपुट अभिव्यक्ति के सभी संभावित परिणाम, कोई निर्दिष्ट प्रारूप या आदेश नहीं होना चाहिए
- सभी इनपुट मान्य हैं (उदाहरण के लिए "7/3 + *" से निपटने की आवश्यकता नहीं है)। इसका मतलब यह भी है कि आपको कभी भी शून्य से विभाजित करने की आवश्यकता नहीं होगी।
- ऑपरेटर सभी बाएं-सहयोगी हैं इसलिए "20/4/2" = "(20/4) / 2"
- यह कोड गोल्फ है इसलिए बाइट्स की सबसे कम संख्या जीतती है
परीक्षण मामले (स्पष्टीकरण के साथ)
- "2 + 3 * 4" = [14, 20]
- 2 + (3 * 4) + 2 + (12) 4 14
- (2 + 3) * 4 ⟶ (5) * 4 * 20
- "18/3 * 2 - 1" = [11, 2, 6]
- ((१⟶ / ३) * २) - १ (((६) * २) - १ ⟶ (१२) - १ 1 ११
- (१ (/ ३) * (२ - १) 6 (६) * (१) * ६
- (१ (/ (३ * २)) - १ 18 (१ 6 / (६)) - १ ⟶ (३) - १ 3 २
- 18 / (3 * (2 - 1)) (18 / (3 * (1)) (6
- 18 / ((3 * 2) - 1) 5 18/5 (3.6
परीक्षण मामले (स्पष्टीकरण के बिना)
- "45/8 + 19/45 * 3" = [6.891666666666667, 18.141666666666666, 0.11111111111111113, 0.01234567901234568, 0.01234567901234568, 5.765740740740741]।
- "2 + 6 * 7 * 2 + 6/4" = [112 196 23 87.5]
2 - 3 + 4
=>[-5, 3]
2*3-6+2-9/6*8+5/2-9
24 अलग-अलग परिणाम देना।