Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में पालिंड्रोम: कैसे जांचें कि कोई नंबर पालिंड्रोम है या नहीं

पालिंड्रोम क्या है?

एक पालिंड्रोम एक स्ट्रिंग है जो बाएं से दाएं पढ़ने पर या दाएं से बाएं पढ़ने पर समान होती है। दूसरे शब्दों में, एक पालिंड्रोम स्ट्रिंग वह है जिसका रिवर्स मूल स्ट्रिंग के बराबर होता है।

उदाहरण के लिए, civic, madam पालिंड्रोम हैं।

Cat पालिंड्रोम नहीं है। चूंकि इसका रिवर्स tac है, जो मूल स्ट्रिंग (cat) के बराबर नहीं है।

एक प्रोग्राम लिखें कि इनपुट स्ट्रिंग पालिंड्रोम है या नहीं।

मेथड 1 - स्ट्रिंग का रिवर्स ढूंढें

  • प्रोग्राम में आवश्यक मुख्य चीज़ स्ट्रिंग का रिवर्स ढूंढना है।

  • रिवर्स स्ट्रिंग को रिवर्स करने के किसी भी मेथड का उपयोग करके पाया जा सकता है। हम सिंपल स्लाइसिंग मेथड का उपयोग करके स्ट्रिंग को रिवर्स करेंगे। इनबिल्ट ''.join(reversed()) का भी उपयोग किया जा सकता है। हालांकि स्ट्रिंग को रिवर्स करने के अन्य तरीके हैं, हम एक सरल तरीके से जाएंगे।

  • रिवर्स की गई स्ट्रिंग की तुलना मूल स्ट्रिंग से करें।

  • यदि दोनों स्ट्रिंग्स समान हैं तो True वापस करें, अन्यथा False वापस करें।

उदाहरण

def isPalindrome(s):
    rev = s[::-1]
    if rev == s:
        return True
    return False

print("Enter a string")
st = input()
print(isPalindrome(st))

आउटपुट

Enter a string
madam
True

मेथड 2 - स्ट्रिंग का रिवर्स ढूंढे बिना

विचार यह है कि स्ट्रिंग के पहले और अंतिम इंडेक्स पर कैरेक्टर्स की लगातार तुलना करें जब तक वे असमान न हों।

हम स्ट्रिंग को रिवर्स किए बिना दो उदाहरण देखेंगे -

स्ट्रिंग वैल्यू "madam":

  • हम पहले और अंतिम कैरेक्टर्स की तुलना करते हैं जो समान हैं, आगे हम दूसरे और अंतिम से दूसरे कैरेक्टर्स की तुलना करते हैं जो फिर से समान हैं। अंत में हम केवल एक कैरेक्टर के साथ बचे हैं। इस प्रकार, स्ट्रिंग एक पालिंड्रोम है।

स्ट्रिंग वैल्यू "reader":

  • कैरेक्टर्स दूसरे और अंतिम से दूसरे एलिमेंट की तुलना तक समान हैं।

    जब तीसरे और अंतिम से तीसरे कैरेक्टर्स की तुलना की जाती है, तो वे समान नहीं होते, इसलिए यह पालिंड्रोम नहीं है।

  • हम इस विचार को रिकर्सन या दो पॉइंटर्स का उपयोग करके इम्प्लीमेंट कर सकते हैं। हम दो पॉइंटर्स का उपयोग करके इम्प्लीमेंट करेंगे। हम स्टार्ट पॉइंटर को 0 और एंड पॉइंटर को अंतिम इंडेक्स पर शुरू करते हैं। हम तुलना शुरू करते हैं और यदि कैरेक्टर्स समान हैं, तो हम स्टार्ट पॉइंटर को इंक्रीमेंट करते हैं और एंड पॉइंटर को डिक्रीमेंट करते हैं (इस प्रकार उन्हें दूसरे और अंतिम से दूसरे कैरेक्टर पर लाते हैं और इसी तरह)।

  • हम कब False वापस करते हैं? यदि हम पाते हैं कि पॉइंटर्स के किसी भी सेट के लिए कैरेक्टर्स समान नहीं हैं, तो हमें आगे के इंडेक्स देखने की आवश्यकता नहीं है और हम False वापस कर सकते हैं।

  • हम कब True वापस करते हैं? अन्य मामले में, यदि स्ट्रिंग पालिंड्रोम है, तो हम True वापस करेंगे जब दोनों पॉइंटर्स समान हो जाएं (जांच के लिए केवल 1 कैरेक्टर बचा हो) या स्टार्ट पॉइंटर एंड पॉइंटर से अधिक हो जाए (सभी कैरेक्टर्स चेक हो गए हों) और इसलिए True वापस करें।

उदाहरण

def isPalindrome(s):
    rev = s[::-1]
    if rev == s:
        return True
    return False

print("Enter a string")
st = input()
print(isPalindrome(st))

आउटपुट

Enter a string
reader
False
>>>
Enter a string
madam
True
  1. पायथन प्रोग्राम में कैसे जांचें कि दी गई संख्या फाइबोनैचि नंबर है या नहीं? पायथन प्रोग्राम में कैसे जांचें कि दी गई संख्या फाइबोनैचि नंबर है या नहीं?

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक संख्या n दिए जाने पर, जांचें कि n फाइबोनैचि नंबर है या नहीं। हम सभी जानते हैं कि nth फाइबोनैचि नंबर पिछले दो फाइबोनैचि नंबर्स का योग होता है। लेकिन वे पुनरावृत्ति संबंध के अलावा एक दिलचस्प संबंध भी प

  1. - पायथन में कैसे जांचें कि स्ट्रिंग में कम से कम एक लेटर और एक नंबर है?

    पायथन में इसकी जांच करने का सबसे आसान तरीका नियमित अभिव्यक्तियों का उपयोग करना है। यह जांचने के लिए कि दी गई स्ट्रिंग में कम से कम एक लेटर और एक नंबर है, हम re.match(regex, string) का उपयोग करते हैं। उदाहरण import re print(bool(re.match(^(?=.*[0-9]$)(?=.*[a-zA-Z]), hasAlphanum123))) print(bool(re.ma

  1. - पायथन में कैसे जांचें कि स्ट्रिंग में अल्फाबेट्स या नंबर्स हैं?

    पायथन स्ट्रिंग क्लास में isalnum() नामक एक मेथड होता है जिसे स्ट्रिंग पर कॉल किया जा सकता है और यह हमें बताता है कि स्ट्रिंग में केवल अल्फान्यूमेरिक्स हैं या नहीं। आप इसे निम्न प्रकार से कॉल कर सकते हैं: print(123abc.isalnum()) आउटपुट: True print(123#$%abc.isalnum()) आउटपुट: False आप उसी परिणाम के ल