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

पायथन में स्ट्रिंग कम्प्रेशन करने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें इस स्ट्रिंग को रन लेंथ एन्कोडिंग फॉर्म में कम्प्रेस करना है। तो जब कोई वर्ण लगातार k बार दोहराया जाता है जैसे 'bbbb' यहां अक्षर 'b' लगातार चार बार दोहराया गया है, तो एन्कोडेड फॉर्म 'b4' होगा। एकल वर्णों के लिए हम उसमें काउंट नहीं जोड़ेंगे।

उदाहरण के लिए, यदि इनपुट s = "abbbaaaaaaccdaaab" है, तो आउटपुट ab3a6c2da3b होगा।

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

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

  • res := खाली स्ट्रिंग
  • cnt := 1
  • i के लिए 1 से s के आकार - 1 तक की रेंज में, करें
    • यदि s[i-1], s[i] के समान है, तो
      • cnt := cnt + 1
    • अन्यथा,
      • res := res + s[i-1]
      • यदि cnt > 1, तो
        • res := res + cnt
      • cnt := 1
  • res := res + s का अंतिम वर्ण
  • यदि cnt > 1, तो
    • res := res + cnt
  • res लौटाएं

उदाहरण

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

def solve(s):
    res = ""
    cnt = 1
    for i in range(1, len(s)):
        if s[i-1] == s[i]:
            cnt += 1
        else:
            res = res + s[i-1]
            if cnt > 1:
                res += str(cnt)
            cnt = 1
    res = res + s[-1]
    if cnt > 1:
        res += str(cnt)
    return res

s = "abbbaaaaaaccdaaab"
print(solve(s))

इनपुट

"abbbaaaaaaccdaaab"

आउटपुट

ab3a6c2da3b
  1. पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक हेक्साडेसिमल स्ट्रिंग दी गई है, जिसे उसके दशमलव समकक्ष में बदलना है। इस समस्या को हल करने के दो दृष्टिकोण हैं: ब्रूट-फोर्स दृष्टिकोण बिल्ट-इन मॉड्यूल का उपयोग ब्रूट-फोर्स विधि यहां हम स्पष्ट टाइप कास्टिंग फ़ंक्शन int() की

  1. - पायथन प्रोग्राम: स्ट्रिंग में URL चेक करना

    इस मामले में हम पायथन में re मॉड्यूल का उपयोग करते हैं। यहां हम एक स्ट्रिंग स्वीकार करते हैं और चेक करते हैं कि स्ट्रिंग में कोई URL है या नहीं। यदि स्ट्रिंग में URL मौजूद है तो प्रदर्शित करें। हम इस समस्या को हल करने के लिए findall() मेथड का उपयोग करते हैं।एल्गोरिदमचरण 1: इनपुट के रूप में स्ट्रिंग

  1. - पायथन प्रोग्राम: स्ट्रिंग में मिरर कैरेक्टर्स खोजना

    एक यूजर इनपुट स्ट्रिंग और पोजिशन दी गई है, उस पोजिशन से हमें स्ट्रिंग की लंबाई तक अल्फाबेटिकल ऑर्डर में कैरेक्टर्स को मिरर करना है। इस ऑपरेशन में, हम a को z में, b को y में, c को x में, d को w में बदलते हैं और इसी तरह, यानी पहला कैरेक्टर लास्ट बन जाता है और इसी तरह।Input: p = 3 Input string = python