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

पायथन में जांचें कि कोई स्ट्रिंग दिए गए नाम का टाइप किया गया संस्करण है या नहीं

मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं। कभी-कभी जब हम एक स्वर (vowel) टाइप करते हैं, तो कुंजी देर तक दबी रह सकती है, और स्वर 1 या अधिक बार दोहराया जा सकता है। हमें यह जांचना है कि क्या संभव है कि t, s को इंगित करता हुआ टाइप किया गया संस्करण है।

उदाहरण के लिए, यदि इनपुट s = "mine", t = "miiine" है, तो आउटपुट True होगा क्योंकि स्वर 'i' तीन बार दोहराया गया है, अन्य अक्षर ठीक हैं।

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

हम दोनों स्ट्रिंग्स को साथ-साथ पार करते हैं। जब स्वर मिलता है, तो हम t में लगातार समान स्वरों को गिनते हैं और s में संगत स्वरों से तुलना करते हैं। t में स्वरों की संख्या s से कम नहीं होनी चाहिए।

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

  1. s_len, t_len और j = 0 (t के लिए इंडेक्स) इनिशियलाइज़ करें
  2. प्रत्येक i (0 से s_len-1) के लिए:
    • यदि s[i] != t[j], तो False लौटाएं
    • यदि s[i] स्वर नहीं है, तो j += 1 और अगले पर जाएं
    • s में लगातार समान स्वरों की गिनती cnt_1 करें
    • t में लगातार समान स्वरों की गिनती cnt_2 करें
    • यदि cnt_1 > cnt_2, तो False लौटाएं
  3. True लौटाएं

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

def isVowel(c):
    return c in "aeiou"

def solve(s, t):
    s_len = len(s)
    t_len = len(t)
    j = 0
    
    for i in range(s_len):
        if s[i] != t[j]:
            return False
        
        if not isVowel(s[i]):
            j += 1
            continue
        
        cnt_1 = 1
        while i < s_len - 1 and s[i] == s[i+1]:
            cnt_1 += 1
            i += 1
        
        cnt_2 = 1
        while j < t_len - 1 and t[j] == s[i]:
            cnt_2 += 1
            j += 1
        
        if cnt_1 > cnt_2:
            return False
    
    return True

s = "mine"
t = "miiine"
print(solve(s, t))  # True

इनपुट

"mine", "miiine"

आउटपुट

True

व्याख्या:

s = "mine", t = "miiine"

  • m → m (स्वर नहीं) ✓
  • i → iii (स्वर, s में 1 बार, t में 3 बार) ✓
  • n → n (स्वर नहीं) ✓
  • e → e (स्वर, दोनों में 1 बार) ✓
  1. पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग वॉयल पालिंड्रोम है या नहीं पायथन प्रोग्राम: जांचें कि दी गई स्ट्रिंग वॉयल पालिंड्रोम है या नहीं

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

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

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

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

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक स्ट्रिंग इनपुट दिए जाने पर, हमें यह जांचने के लिए एक पायथन प्रोग्राम जनरेट करना होगा कि वह स्ट्रिंग पैंग्राम है या नहीं। एक पैंग्राम एक वाक्य/शब्दों की श्रृंखला है जिसमें अंग्रेजी