मान लीजिए हमारे पास इस रूप में एक समीकरण है: a + b = c, अब a, b या c में से कोई एक पद लापता है। हमें लापता पद ढूंढना है।
इसलिए, यदि इनपुट ? + 4 = 9 है, तो आउटपुट 5 होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- स्ट्रिंग से सभी रिक्त स्थान हटाएं और
+और=को कॉमा','में बदलें। elements :=कॉमा से अलग करके स्ट्रिंग को विभाजित करके तत्वों की सूची।idx := 0iको 0 सेlen(elements)-1तक के लिए:- यदि
elements[i]संख्यात्मक नहीं है, तो:idx := i- लूप से बाहर निकलें।
- यदि
- यदि अंतिम तत्व लापता है, तो
int(elements[0]) + int(elements[1])लौटाएं। - अन्यथा यदि दूसरा तत्व लापता है, तो
int(elements[2]) - int(elements[0])लौटाएं। - अन्यथा यदि पहला तत्व लापता है, तो
int(elements[2]) - int(elements[1])लौटाएं।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def find_missing(string):
string = string.strip().replace(' ', '')
string = string.replace('=', ',')
string = string.replace('+', ',')
elements = string.split(',')
idx = 0
for i in range(len(elements)):
if not elements[i].isnumeric():
idx = i
break
if idx == 2:
return int(elements[0]) + int(elements[1])
elif idx == 1:
return int(elements[2]) - int(elements[0])
elif idx == 0:
return int(elements[2]) - int(elements[1])
print(find_missing('6 + 8 = ?'))
print(find_missing('? + 8 = 20'))
print(find_missing('5 + ? = 15'))
इनपुट
'6 + 8 = ?', '? + 8 = 20', '5 + ? = 15'
आउटपुट
14 12 10