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

पायथन में जांचें कि कोई स्ट्रिंग विशेष पैलिंड्रोम बनाने के लिए पुनर्व्यवस्थित की जा सकती है या नहीं

मान लीजिए हमारे पास एक स्ट्रिंग है; हमें यह जांचना है कि क्या दिए गए स्ट्रिंग के वर्णों को फेरबदल (shuffle) करके पैलिंड्रोम बनाया जा सकता है या नहीं।

उदाहरण के लिए, यदि इनपुट s = "aarcrce" है, तो आउटपुट True होगा क्योंकि हम वर्णों को फेरबदल करके "racecar" बना सकते हैं जो एक पैलिंड्रोम है।

समाधान दृष्टिकोण

एक स्ट्रिंग के वर्णों को पुनर्व्यवस्थित करके पैलिंड्रोम बनाया जा सकता है यदि और केवल यदि अधिकतम एक वर्ण की आवृत्ति विषम हो।

एल्गोरिदम चरण:

  1. आकार 256 का freq ऐरे बनाएं (ASCII वर्णों के लिए) और 0 से भरें
  2. स्ट्रिंग के प्रत्येक वर्ण की आवृत्ति गिनें
  3. odd_count = 0
  4. प्रत्येक आवृत्ति के लिए:
    • यदि आवृत्ति विषम है, तो odd_count += 1
    • यदि odd_count > 1, तो False लौटाएं
  5. True लौटाएं

पायथन कार्यान्वयन

def solve(s):
    size = 256
    freq = [0] * size
    
    for i in range(len(s)):
        freq[ord(s[i])] += 1
    
    odd_count = 0
    for i in range(size):
        if freq[i] % 2 == 1:
            odd_count += 1
            if odd_count > 1:
                return False
    return True

# collections.Counter का उपयोग करके सरल संस्करण
from collections import Counter

def solve_simple(s):
    freq = Counter(s)
    odd_count = sum(1 for v in freq.values() if v % 2 == 1)
    return odd_count <= 1

s = "aarcrce"
print(solve(s))        # True
print(solve_simple(s)) # True

इनपुट

"aarcrce"

आउटपुट

True

व्याख्या:

"aarcrce" में आवृत्तियां:

  • a: 2 (सम)
  • r: 2 (सम)
  • c: 2 (सम)
  • e: 1 (विषम)

केवल एक विषम आवृत्ति (e), इसलिए पैलिंड्रोम संभव है: "racecar"

  1. पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग वॉयल पालिंड्रोम है या नहीं पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग वॉयल पालिंड्रोम है या नहीं

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है (जिसमें स्वर और व्यंजन दोनों अक्षर हैं), सभी व्यंजनों को हटाएं, फिर जांचें कि परिणामी स्ट्रिंग पालिंड्रोम है या नहीं। यहां हम पहले स्ट्रिंग में मौजूद सभी व्यंजनों को हटाते हैं। एक लूप से विभाजकों की गणना क

  1. - पायथन प्रोग्राम जांचने के लिए कि कोई स्ट्रिंग पैलिंड्रोम है या नहीं

    एक स्ट्रिंग दी गई है, हमारा कार्य यह जांचना है कि यह स्ट्रिंग पैलिंड्रोम है या नहीं। एल्गोरिदम चरण 1: इनपुट के रूप में स्ट्रिंग दर्ज करें। चरण 2: स्ट्रिंग स्लाइसिंग का उपयोग करके स्ट्रिंग को उल्टा करें और इसकी तुलना मूल स्ट्रिंग से करें। चरण 3: फिर परिणाम प्रदर्शित करें। उदाहरण कोड my_string = inpu

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

    स्ट्रिंग को फ्लोट में पार्स करने के लिए, आप निम्नलिखित का उपयोग कर सकते हैं: try: print(float(112.15)) except ValueError: print(पार्स नहीं कर सकते) यह आपको आउटपुट देगा: 112.15 यदि आपका स्ट्रिंग पार्स नहीं किया जा सकता, तो यह एक वैल्यू एरर फेंकेगा। आप एक रैपर मेथड बना सकते हैं जो आपके द्वारा