कहो कि मेरे पास एक अभिव्यक्ति है:
9 * 8 + 1 - 4
ऑपरेटर की पूर्वता के आधार पर इस अभिव्यक्ति की व्याख्या छह अलग-अलग तरीकों से की जा सकती है:
(((9 * 8) + 1) - 4) = 69 (* + -)
((9 * 8) + (1 - 4)) = 69 (* - +)
((9 * (8 + 1)) - 4) = 77 (+ * -)
(9 * ((8 + 1) - 4)) = 45 (+ - *)
((9 * 8) + (1 - 4)) = 69 (- * +)
(9 * (8 + (1 - 4))) = 45 (- + *)
कहो मैं एक डेवलपर हूं, और मुझे पूर्ववर्ती तालिकाओं आदि को याद करने का मन नहीं है, इसलिए मैं सिर्फ अनुमान लगाने जा रहा हूं।
इस मामले में, त्रुटि का सबसे बड़ा मार्जिन 45-77 होगा, जो कि 32 का अंतर है। इसका मतलब है कि मेरा अनुमान केवल अधिकतम 32 से दूर होगा।
चुनौती
संख्या और से मिलकर एक अभिव्यक्ति को देखते हुए +
, -
, *
, /
(पूर्णांक प्रभाग) और %
, उत्पादन है कि अभिव्यक्ति के लिए सबसे बड़ा और सबसे छोटा संभव मूल्य के पूर्ण अंतर, ऑपरेटरों के पूर्वता पर आधारित है।
विशेष विवरण
- इनपुट एक्सप्रेशन में कोष्ठक नहीं होगा और हर ऑपरेटर लेफ्ट-एसोसिएटिव है।
- इनपुट अभिव्यक्ति में केवल nonnegative पूर्णांक होंगे। हालाँकि, सबटेक्शंस नकारात्मक (जैसे
1 - 4
) का मूल्यांकन कर सकते हैं । - आप किसी भी उचित प्रारूप में अभिव्यक्ति ले सकते हैं। उदाहरण के लिए:
"9 * 8 + 1 - 4"
"9*8+1-4"
[9, "*", 8, "+", 1, "-", 4]
[9, 8, 1, 4], ["*", "+", "-"]
- इनपुट में कम से कम 1 और अधिकतम 10 ऑपरेटर शामिल होंगे।
- किसी भी अभिव्यक्ति जिसमें 0 से एक विभाजन या मोडुलो है, को अनदेखा किया जाना चाहिए।
- आप मान सकते हैं कि मॉडुलो को नकारात्मक ऑपरेंड नहीं दिया जाएगा।
परीक्षण के मामलों
9 * 8 + 1 - 4 32
1 + 3 * 4 3
1 + 1 0
8 - 6 + 1 * 0 8
60 / 8 % 8 * 6 % 4 * 5 63
%
नकारात्मक संख्याओं पर ऑपरेटर कैसे काम करता है? सी या पायथन की तरह या कुछ और?
%
अपने दूसरे उदाहरण में दो अलग-अलग मिसालें मान रहे हैं ।