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

पायथन में स्ट्रिंग से वर्णों को हटाने या फेरबदल करके बनने वाले सबसे लंबे पैलिंड्रोम का पता लगाएं


मान लीजिए कि हमारे पास एक स्ट्रिंग है; हमें सबसे लंबा पैलिंड्रोम ढूंढना है जो स्ट्रिंग से वर्णों को हटाकर या फेरबदल करके उत्पन्न किया जा सकता है। और अगर एक से अधिक पलिंड्रोम हैं तो केवल एक ही लौटाएं।

इसलिए, यदि इनपुट pqqprrs जैसा है, तो आउटपुट pqrsrqp होगा।

  • इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • गिनती :=आकार 256 की सरणी, 0 से भरी हुई

  • मैं के लिए 0 से लेकर स्ट्रिंग के आकार तक के लिए, करें

    • गिनती [ASCII of(string[i]) ] :=count[ASCII of(string[i]) ] + 1

  • प्रारंभ:=रिक्त स्ट्रिंग, मध्य:=रिक्त स्ट्रिंग, अंत:=रिक्त स्ट्रिंग

  • कैरेक्टर :=ASCII of('a')

  • जबकि कैरेक्टर <=ASCII of('z') , do

    • अगर गिनती [वर्ण] और 1 शून्य नहीं है, तो

      • मध्य:=वर्ण

      • गिनती [चरित्र]:=गिनती [चरित्र] - 1

      • कैरेक्टर :=कैरेक्टर - 1

    • अन्यथा,

      • मैं के लिए 0 रेंज में [कैरेक्टर] / 2 (पूर्णांक विभाजन) गिनने के लिए, करो

        • प्रारंभ:=प्रारंभ + वर्ण से (चरित्र)

    • कैरेक्टर :=कैरेक्टर + 1

  • अंत:=प्रारंभ

  • अंत:=उल्टा अंत

  • वापसी शुरू (मध्य) समाप्‍त अंत से संयुक्‍त वर्ण प्रारंभ करें

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def get_palindrome(string):
   count = [0]*256
   for i in range(len(string)):
      count[ord(string[i])] += 1
   begin = ""
   mid = ""
   end = ""
   character = ord('a')
   while character <= ord('z'):
      if (count[character] & 1):
         mid = character
         count[character] -= 1
         character -= 1
      else:
         for i in range(count[character]//2):
            begin += chr(character)
      character += 1
   end = begin
   end = end[::-1]
   return begin + chr(mid) + end
string = "pqqprrs"
print(get_palindrome(string))

इनपुट

"pqqprrs"

आउटपुट

pqrsrqp

  1. पायथन प्रोग्राम में एक स्ट्रिंग से nth कैरेक्टर को हटाना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें दिए गए स्ट्रिंग से ith इंडेक्स किए गए कैरेक्टर को हटाना है और उसे प्रदर्शित करना है। पायथन में किसी भी स्ट्रिंग में, अनुक्रमण हमेशा 0 से शुरू होता है। मान लीजिए कि हमारे पास एक स्ट्रिंग

  1. एक स्ट्रिंग से nवें वर्ण को हटाने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें दिए गए स्ट्रिंग से ith इंडेक्स किए गए कैरेक्टर को हटाना है और उसे प्रदर्शित करना है। पायथन में किसी भी स्ट्रिंग में, अनुक्रमण हमेशा 0 से शुरू होता है। मान लीजिए कि हमारे पास एक स्ट्रि

  1. एक स्ट्रिंग से एन-वें चरित्र को हटाने के लिए पायथन कार्यक्रम?

    स्ट्रिंग का अर्थ है वर्ण की सरणी इसलिए प्रारंभिक पता 0. है तो हम आसानी से प्रत्येक वर्ण की अनुक्रमणिका प्राप्त कर सकते हैं। हमें उस इंडेक्स नं को इनपुट करना होगा। फिर उस तत्व को हटा दें। तो स्ट्रिंग को दो उप स्ट्रिंग में विभाजित करें। और दो भाग n वें अनुक्रमित वर्ण से पहले एक होना चाहिए और दूसरा अनु