मान लीजिए हमारे पास शतरंज बोर्ड पर क्वीन और प्रतिद्वंद्वी के लिए दो निर्देशांक हैं। ये बिंदु Q और O हैं। हमें यह जांचना है कि क्या क्वीन प्रतिद्वंद्वी पर हमला कर सकती है या नहीं। जैसा कि हम जानते हैं, क्वीन उसी पंक्ति, उसी स्तंभ और विकर्ण में हमला कर सकती है।
उदाहरण के लिए, यदि इनपुट Q = (1, 1), O = (4, 4) है, तो आउटपुट True होगा क्योंकि Q विकर्ण में (4, 4) जा सकती है।

समाधान दृष्टिकोण
क्वीन तीन स्थितियों में हमला कर सकती है: समान पंक्ति (x निर्देशांक समान), समान स्तंभ (y निर्देशांक समान), या विकर्ण (x और y अंतर का निरपेक्ष मान समान)।
एल्गोरिदम चरण:
- यदि
Q[0] == O[0](समान पंक्ति), तो True लौटाएं - यदि
Q[1] == O[1](समान स्तंभ), तो True लौटाएं - यदि
abs(Q[0] - O[0]) == abs(Q[1] - O[1])(विकर्ण), तो True लौटाएं - अन्यथा False लौटाएं
पायथन कार्यान्वयन
def solve(Q, O):
if Q[0] == O[0]:
return True
if Q[1] == O[1]:
return True
if abs(Q[0] - O[0]) == abs(Q[1] - O[1]):
return True
return False
Q = (1, 1)
O = (4, 4)
print(solve(Q, O)) # True
इनपुट
(1, 1), (4, 4)
आउटपुट
True
अन्य उदाहरण:
Q=(2,3), O=(2,7)→ True (समान पंक्ति)Q=(2,3), O=(5,3)→ True (समान स्तंभ)Q=(2,3), O=(5,6)→ True (विकर्ण: |2-5|=3, |3-6|=3)Q=(2,3), O=(5,7)→ False (|2-5|=3, |3-7|=4, समान नहीं)