मान लीजिए हमारे पास संख्याओं की एक सूची nums है। हमें यह जांचना है कि क्या सूची पैलिंड्रोम है या नहीं।
उदाहरण के लिए, यदि इनपुट nums = [10, 12, 15, 12, 10] है, तो आउटपुट True होगा।
समाधान दृष्टिकोण
हम दो पॉइंटर्स का उपयोग करते हैं - एक शुरुआत से और एक अंत से - और तुलना करते हैं कि संगत तत्व समान हैं या नहीं।
एल्गोरिदम चरण:
n = len(nums)is_palindrome = 0(फ्लैग)i = 0- जब
i <= n//2औरn != 0: - यदि
nums[i] != nums[n-i-1], तोis_palindrome = 1सेट करें और लूप तोड़ें i += 1- यदि
is_palindrome == 1, तो False लौटाएं - अन्यथा True लौटाएं
पायथन कार्यान्वयन
def solve(nums):
n = len(nums)
is_palindrome = 0
i = 0
while i <= n // 2 and n != 0:
if nums[i] != nums[n - i - 1]:
is_palindrome = 1
break
i += 1
if is_palindrome == 1:
return False
else:
return True
nums = [10, 12, 15, 12, 10]
print(solve(nums)) # True
इनपुट
[10, 12, 15, 12, 10]
आउटपुट
True
सरल विकल्प:
def solve(nums):
return nums == nums[::-1]
पायथन में स्लाइसिंग [::-1] का उपयोग करके इसे एक पंक्ति में लिखा जा सकता है।