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

पायथन में kवां सबसे छोटा n-लंबाई लेक्सिकोग्राफिकली सबसे छोटा स्ट्रिंग खोजने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या n और एक मान k है। अब एक स्ट्रिंग पर विचार करें जिसमें केवल "0", "1", और "2" हैं जहां कोई भी वर्ण क्रमिक रूप से दोहराया नहीं जाता। हमें ऐसी लंबाई n की स्ट्रिंग्स चुननी हैं और kवीं लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग ढूंढनी है। यदि kवीं स्ट्रिंग नहीं है, तो खाली स्ट्रिंग लौटाएं।

उदाहरण के लिए, यदि इनपुट n = 4, k = 2 है, तो आउटपुट "0120" होगा।

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

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

  • एक मेथड solve() परिभाषित करें जो s, k, last लेता है
  • यदि s == 0, तो खाली स्ट्रिंग लौटाएं
  • "012" में प्रत्येक वर्ण c के लिए:
    • यदि c == last, तो अगले इटरेशन पर जाएं
    • यदि k < 2^(s-1), तो
      • c + solve(s-1, k, c) लौटाएं
    • k := k - 2^(s-1)
  • खाली स्ट्रिंग लौटाएं
  • मुख्य मेथड से solve(n, k, None) कॉल करें

उदाहरण कोड

class Solution:
    def solve(self, s, k, last=None):
        if s == 0:
            return ""
        for c in "012":
            if c == last:
                continue
            if k < 2 ** (s - 1):
                return c + self.solve(s - 1, k, c)
            k -= 2 ** (s - 1)
        return ""

ob = Solution()
n = 4
k = 2
print(ob.solve(n, k))

इनपुट

4, 2

आउटपुट

0120

  1. - Python में स्ट्रिंग की लंबाई ढूंढना (3 तरीके)

    स्ट्रिंग एक Python है जो Unicode कैरेक्टर की एक श्रृंखला है। एक बार घोषित होने पर यह परिवर्तनीय नहीं है। इस लेख में हम देखेंगे कि स्ट्रिंग की लंबाई ढूंढने के विभिन्न तरीके क्या हैं।len() का उपयोग करनायह सबसे सीधा तरीका है। यहां हम len() नामक एक लाइब्रेरी फ़ंक्शन का उपयोग करते हैं। स्ट्रिंग को फ़ंक्श

  1. - पायथन प्रोग्राम: 2D ऐरे में k-वां सबसे छोटा एलिमेंट खोजना

    एक n×n यूजर इनपुट इंटीजर मैट्रिक्स दिया गया है और k का मान। हमारा कार्य 2D ऐरे में k-वां सबसे छोटा एलिमेंट ढूंढना है। यहां हम heapq मॉड्यूल का उपयोग करते हैं। पायथन में हीप क्यू (या heapq) उपलब्ध है। इस मॉड्यूल की तकनीक यह है कि हर बार हीप एलिमेंट का सबसे छोटा पॉप किया जाता है (मिन हीप)। nsmallest()

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

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