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

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

मान लीजिए कि हमारे पास दो स्ट्रिंग्स s और t हैं, हमें यह जांचना होगा कि s में किसी वर्ण की घटनाएँ एकाधिक हैं या t में एक फ़ैक्टर है।

इसलिए, यदि इनपुट s ="xxyzzw" t ="yyyxxxxzz" जैसा है, तो आउटपुट सही होगा क्योंकि s में x की आवृत्ति 2 है, और t में 4 है, s y में केवल एक बार मौजूद है, लेकिन t में वहाँ तीन y हैं, s और t में z की संख्या समान है और s में एक w है लेकिन t में नहीं है।

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

  • s_freq :=एक नक्शा जिसमें सभी वर्ण s और उनकी आवृत्तियों में हों
  • t_freq :=एक नक्शा जिसमें सभी वर्ण t और उनकी आवृत्तियों में हों
  • s_freq में प्रत्येक ch के लिए, करें
    • यदि ch t_freq में नहीं है, तो
      • अगले पुनरावृत्ति के लिए जाएं
    • यदि t_freq[ch] s_freq[ch] से विभाज्य है या s_freq[ch] t_freq[ch] से विभाज्य है, तो
      • अगले पुनरावृत्ति के लिए जाएं
    • अन्यथा,
      • झूठी वापसी
  • सही लौटें

उदाहरण

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

from collections import defaultdict
def solve(s, t):
   s_freq = defaultdict(int)
   t_freq = defaultdict(int)
   for i in range(0, len(s)):
      s_freq[s[i]] += 1
   for i in range(0, len(t)):
      t_freq[t[i]] += 1
   for ch in s_freq:
      if ch not in t_freq:
         continue
      if t_freq[ch] % s_freq[ch] == 0 or s_freq[ch] % t_freq[ch] == 0:
         continue
      else:
         return False
   return True
s = "xxyzzw"
t = "yyyxxxxzz"
print(solve(s, t))

इनपुट

"xxyzzw", "yyyxxxxzz"

आउटपुट

True

  1. जांचें कि क्या पायथन में डीएफए का उपयोग करके बाइनरी स्ट्रिंग मल्टीपल 3 का है

    मान लीजिए कि हमारे पास एक सरणी n है जो किसी भी संख्या के द्विआधारी प्रतिनिधित्व का प्रतिनिधित्व करती है। हमें यह जांचना है कि नियतात्मक परिमित ऑटोमेटा डीएफए का उपयोग करके इसका द्विआधारी प्रतिनिधित्व तीन से विभाज्य है या नहीं। इसलिए, यदि इनपुट n =[1, 1, 0, 0] (12 का बाइनरी) जैसा है, तो आउटपुट ट्रू ह

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

    मान लीजिए कि हमारे पास एक स्ट्रिंग है और हमें स्ट्रिंग में पहला अद्वितीय वर्ण ढूंढना है। तो यदि स्ट्रिंग लोगों की तरह है, तो पहला अक्षर जिसका घटना एक है वह ओ है। तो सूचकांक वापस कर दिया जाएगा, वह यहाँ 2 है। अगर ऐसा कोई कैरेक्टर नहीं है, तो रिटर्न -1. इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

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

    आप स्ट्रिंग क्लास से isalpha() विधि का उपयोग कर सकते हैं। यह जाँचता है कि क्या किसी स्ट्रिंग में केवल अक्षर हैं। आप इसका उपयोग यह जांचने के लिए भी कर सकते हैं कि कोई वर्ण वर्णमाला है या नहीं। उदाहरण के लिए, यदि आप यह जांचना चाहते हैं कि 5वें सूचकांक में चार अक्षर है या नहीं, >>> s = "H