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

पायथन में लगातार तत्वों के लिए जोड़े गिनने का प्रोग्राम


मान लीजिए हमारे पास एक न्यूमेरिक स्ट्रिंग s है जिसमें कुछ अंक हैं। अंक कई बार आ सकते हैं। हमें कुछ जोड़े (अंक, काउंट) लौटाने हैं जो दर्शाते हैं कि s में कौन सा अंक लगातार कितनी बार आया है। इस समस्या को हल करने के लिए हम itertools लाइब्रेरी के अंतर्गत आने वाले groupby() फंक्शन का उपयोग कर सकते हैं। यह एक इटरेटर ऑब्जेक्ट लौटाएगा जिसमें प्रत्येक आइटम पहले स्थान पर होगा और दूसरे स्थान पर दूसरा groupby ऑब्जेक्ट होगा। हमें प्रत्येक जोड़े के लिए groupby ऑब्जेक्ट्स की संख्या गिननी होगी।

उदाहरण के लिए, यदि इनपुट s = "11522226551" है, तो आउटपुट [(1, 2), (5, 1), (2, 4), (6, 1), (5, 2), (1, 1)] होगा क्योंकि शुरुआत में 1 दो बार मौजूद है, फिर सिंगल 5 फिर चार 2s और इसी तरह।

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

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

  • it := s के लिए groupby फंक्शन कॉल करें
  • ret := एक नई सूची
  • प्रत्येक जोड़े (digit, gp) के लिए it में, करें
    • (digit और gp की सूची की लंबाई) को ret में डालें
  • ret लौटाएं

उदाहरण

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

from itertools import groupby

def solve(s):
    it = groupby(s)
    ret = []
    for digit, gp in it:
        ret.append((int(digit), len(list(gp))))
    return ret

s = "11522226551"
print(solve(s))

इनपुट

"11522226551"

आउटपुट

[(1, 2), (5, 1), (2, 4), (6, 1), (5, 2), (1, 1)]
  1. - पायथन में लगातार समान तत्वों को सबलिस्ट में पैक करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हम लगातार समान मान वाले तत्वों को सबलिस्ट में पैक करेंगे। हमें ध्यान रखना है कि यदि सूची में केवल एक घटना है तो भी यह अपनी खुद की सबलिस्ट में होनी चाहिए।इसलिए, यदि इनपुट nums = [5, 5, 2, 7, 7, 7, 2, 2, 2, 2] जैसा है, तो आउटपुट [[5, 5], [2], [7, 7

  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. पायथन प्रोग्राम: क्विकसॉर्ट पायथन प्रोग्राम: क्विकसॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें क्विकसॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां हम पहले सरणी को पार्टीशन करते हैं और क्रमबद्ध सरणी प्राप्त करने के लिए अलग-अलग पार्टीशन को क्रमबद्ध करते हैं। उदाहरण # विभाजन फ़ंक्शन def pa