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

जांचें कि क्या एक स्ट्रिंग में समान आवृत्ति वाले सभी वर्ण हैं, जिसमें पायथन में एक भिन्नता की अनुमति है

मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग है, हमें यह जांचना होगा कि क्या हम अधिकतम 1 वर्ण को हटाकर s को एक वैध स्ट्रिंग में परिवर्तित कर सकते हैं। यहां एक मान्य स्ट्रिंग का अर्थ है एक स्ट्रिंग str जैसे कि str में सभी अद्वितीय वर्णों के लिए प्रत्येक वर्ण की आवृत्ति समान होती है।

इसलिए, यदि इनपुट s ="xyyzx" जैसा है, तो आउटपुट सही होगा क्योंकि हम z को हटा सकते हैं तो स्ट्रिंग "xyyx" होगी जहां x और y की घटनाएं समान हैं।

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

  • आकार :=26
  • घटना :=26 आकार की एक सरणी। यह प्रत्येक वर्ण की आवृत्तियों को s में संग्रहीत कर रहा है
  • occr1 :=0
  • occr1_cnt:=0
  • मैं के लिए 0 से आकार -1 की सीमा में, करो
    • यदि घटना [i] 0 नहीं है, तो
      • occr1:=घटना[i]
      • occr1_cnt:=1
      • लूप से बाहर आएं
  • occr2 :=0
  • occr2_cnt:=0
  • j के लिए i+1 से लेकर आकार -1 तक की श्रेणी में
    • यदि घटना [j] 0 नहीं है, तो
      • यदि घटना [j] occr1 के समान है, तो
        • occr1_cnt:=occr1_cnt + 1
      • अन्यथा,
        • occr2_cnt:=1
        • घटना :=घटना[j]
        • लूप से बाहर आएं
  • k के लिए j+1 से लेकर आकार -1 तक की श्रेणी में
    • यदि घटना [k] 0 नहीं है, तो
      • यदि घटना [k] occr1 के समान है, तो
        • occr1_cnt:=occr1_cnt + 1
      • यदि घटना [k] occr2 के समान है, तो
        • occr2_cnt:=occr2_cnt + 1
      • अन्यथा,
        • झूठी वापसी
    • अगर occr1_cnt> 1 और occr2_cnt> 1, तो
      • झूठी वापसी
  • सही लौटें

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

उदाहरण

size = 26
def solve(str):
   occurrence = [0]*size
   for i in range(len(str)): occurrence[ord(str[i])-ord('a')] += 1
      occr1 = 0
      occr1_cnt = 0
      for i in range(size):
         if (occurrence[i] != 0):
            occr1 = occurrence[i]
            occr1_cnt = 1
            break
   occr2 = 0
   occr2_cnt = 0
   for j in range(i+1,size):
      if (occurrence[j] != 0):
         if (occurrence[j] == occr1):
            occr1_cnt += 1
         else:
            occr2_cnt = 1
            occr = occurrence[j]
            break
   for k in range(j+1,size):
      if occurrence[k] != 0:
         if (occurrence[k] == occr1):
            occr1_cnt += 1
      if (occurrence[k] == occr2):
         occr2_cnt += 1
      else:
         return False
      if occr1_cnt > 1 and occr2_cnt > 1:
         return False
   return True
s = "xyyzx"
print(solve(s))

इनपुट

"xyyzx"

आउटपुट

True

  1. पायथन प्रोग्राम यह जांचने के लिए कि क्या एक स्ट्रिंग में सभी अद्वितीय वर्ण हैं

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

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

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

  1. कैसे जांचें कि पाइथन में प्रत्ययों की सूची से एक स्ट्रिंग समाप्त होती है या नहीं?

    स्ट्रिंग क्लास में पायथन की एक विधि endwith(tuple) है। यह विधि स्ट्रिंग्स के टुपल को स्वीकार करती है जिसे आप खोजना चाहते हैं और इसे स्ट्रिंग ऑब्जेक्ट पर कहा जाता है। आप इस विधि को निम्न तरीके से कॉल कर सकते हैं: string = 'core java' print(string.endswith(('txt', 'xml', 'j