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

पायथन में केवल अक्षरों को उल्टा करें

मान लीजिए कि हमारे पास एक स्ट्रिंग S है, हमें उलटी हुई स्ट्रिंग ढूंढनी है, जहां सभी वर्ण जो एक अक्षर नहीं हैं, अपनी स्थिति नहीं बदलेंगे और सभी अक्षर अपनी स्थिति को उलट देंगे। इसलिए यदि दी गई स्ट्रिंग "a-bC-dEf-ghIj" है, तो आउटपुट "j-Ih-gfE-dCba" होगा

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

  • इसे हल करने के लिए हम रेगुलर एक्सप्रेशन लाइब्रेरी का उपयोग करेंगे
  • अगर S खाली है, तो S को वापस कर दें
  • str :=एक खाली स्ट्रिंग, अनुक्रमणिका1 :=0 और अनुक्रमणिका2 :=S – 1 की लंबाई
  • जबकि अनुक्रमणिका1 <एस की लंबाई
    • यदि अनुक्रमणिका2>=0 और S[index1] वर्णमाला है और S[index2] वर्णमाला है
      • str:=str + S[index2]
      • इंडेक्स2 को 1 से घटाएं और इंडेक्स1 को 1 से बढ़ाएं
    • अन्यथा यदि S[index1] वर्णमाला है तो index2 को 1 से घटाएं
    • अन्यथा यदि S[index1] वर्णमाला नहीं है, तो str :=str + S[index1], index1 को 1 से बढ़ाएं
    • अन्यथा अनुक्रमणिका2 को 1 से घटाएं और अनुक्रमणिका1 को 1 से बढ़ाएं
  • वापसी str

उदाहरण

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

class Solution:
   def reverseOnlyLetters(self, S):
      if not S:
         return S
      str_= ""
      index1 = 0
      index2 = len(S)-1
      while index1<len(S):
         #print(index1,index2)
         if index2>=0 and S[index1].isalpha() and S[index2].isalpha():
            str_+=S[index2]
            index2 -= 1
            index1 += 1
         elif S[index1].isalpha():
            index2-=1
         elif not S[index1].isalpha():
            str_+=S[index1]
            index1+=1
         else:
            index2 -= 1
            index1 += 1
      return str_
ob1 = Solution()
print(ob1.reverseOnlyLetters("a-bC-dEf-ghIj"))

इनपुट

"a-bC-dEf-ghIj"

आउटपुट

"j-Ih-gfE-dCba"

  1. कैसे जांचें कि स्ट्रिंग में पाइथन में केवल व्हाइटस्पेस अक्षर हैं या नहीं?

    हम जांच सकते हैं कि स्ट्रिंग में 2 विधियों का उपयोग करके केवल व्हाइटस्पेस वर्ण हैं या नहीं। सबसे पहले विधि isspace() का उपयोग कर रहा है। उदाहरण के लिए:

  1. कैसे जांचें कि स्ट्रिंग में पाइथन में केवल ऊपरी केस अक्षर हैं या नहीं?

    हम जांच सकते हैं कि क्या किसी स्ट्रिंग में 2 विधियों का उपयोग करके केवल अपर केस लेटर्स हैं। सबसे पहले विधि isupper() का उपयोग कर रहा है। उदाहरण print( 'Hello world'.isupper()) print('HELLO'.isupper()) आउटपुट False True आप उसी परिणाम के लिए रेगेक्स का उपयोग भी कर सकते हैं। केवल अपरके

  1. कैसे जांचें कि स्ट्रिंग में पाइथन में केवल निचले केस अक्षर हैं या नहीं?

    हम जांच सकते हैं कि क्या किसी स्ट्रिंग में 2 विधियों का उपयोग करके केवल छोटे अक्षर हैं। सबसे पहले विधि islower() का उपयोग कर रहा है। उदाहरण के लिए: print('Hello world'.islower()) print('hello world'.islower()) आउटपुट False True आप उसी परिणाम के लिए रेगेक्स का भी उपयोग कर सकते हैं।