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

k पायथन के आकार के 1 से n तक kth लेक्सिकोग्राफिक अनुक्रम खोजने का कार्यक्रम

मान लीजिए हमारे पास दो मान n और k हैं। अब श्रेणी 1 से n [1, 2, ..., n] में संख्याओं की एक सूची पर विचार करें और इस सूची के प्रत्येक क्रमपरिवर्तन को लेक्सिकोग्राफ़िक अनुक्रम में उत्पन्न करें। उदाहरण के लिए, यदि n =4 हमारे पास [1234, 1243, 1324, 1342, 1423, 1432, 2134, 2143, 2314, 2341, 2413, 2431, 3124, 3142, 3214, 3241, 3412, 3421, 4123, 4132, 4213, 4231, 4312, 4321]। हमें इस क्रमपरिवर्तन अनुक्रम के kth मान को एक स्ट्रिंग के रूप में खोजना होगा।

इसलिए, यदि इनपुट n =4 k =5 जैसा है, तो आउटपुट "1432" होगा

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

  • फ़ंक्शन फ़ैक्टर () को परिभाषित करें। यह संख्या लेगा

  • यथा :=संख्या

  • res :=एक डबल एंडेड कतार और शुरुआत में 0 डालें

  • मैं :=2

  • जबकि यथा खाली नहीं है, करें

    • quo :=भागफल (quo/i), रेम :=quo mod i

    • रेस के बाईं ओर रेम डालें

    • मैं :=मैं + 1

  • रिटर्न रेस

  • मुख्य विधि से निम्न कार्य करें -

  • संख्याएं :=1 से n तक के मान वाली एक सूची

  • रेस :=खाली स्ट्रिंग

  • के_तथ्य:=कारक(के)

  • जबकि k_fact का आकार <संख्याओं का आकार, करें

    • रेस:=संख्याओं के पहले तत्व को स्ट्रिंग के रूप में संयोजित करें, फिर संख्याओं के पहले तत्व को हटा दें

  • k_fact में प्रत्येक अनुक्रमणिका के लिए, करें

    • संख्या :=अनुक्रमणिका−संख्याओं का वां तत्व, फिर उस तत्व को हटा दें

    • रेस :=रेस कॉन्टेनेट नंबर

  • रिटर्न रेस

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

उदाहरण

from collections import deque
def factors(num):
   quo = num
   res = deque([0])
   i = 2
   while quo:
      quo, rem = divmod(quo, i)
      res.appendleft(rem)
      i += 1
   return res
class Solution:
   def solve(self, n, k):
      numbers = [num for num in range(1, n + 1)]
      res = ""
      k_fact = factors(k)
      while len(k_fact) < len(numbers):
         res += str(numbers.pop(0))
      for index in k_fact:
         number = numbers.pop(index)
         res += str(number)
      return res
ob = Solution()
n = 4
k = 5
print(ob.solve(n, k))

इनपुट

4, 5

आउटपुट

1432

  1. पायथन में एक शब्द सूची से विपर्यय का सबसे बड़ा समूह खोजने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास स्ट्रिंग शब्दों की एक सूची है, हमें सभी विपर्यय को एक साथ समूहित करना होगा और सबसे बड़े समूह का आकार वापस करना होगा। इसलिए, यदि इनपुट शब्दों की तरह है =[xy, yx, xyz, zyx, yzx, wwwww], तो आउटपुट 3 होगा, जैसे [xyz, zyx , yzx] सबसे बड़ा समूह है। इसे हल करने के लिए, हम इन चरणों

  1. पायथन में तत्वों की सूची से kth लापता संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास क्रमित अद्वितीय संख्याओं की एक सूची है जिन्हें अंक और एक पूर्णांक k कहा जाता है, हमें दी गई सूची के पहले तत्व से kth लुप्त संख्या ज्ञात करनी होगी। इसलिए, यदि इनपुट nums =[5,6,8,10,11], k =1 जैसा है, तो आउटपुट 9 होगा, क्योंकि 9 दूसरी (इंडेक्स 1) लापता संख्या है। इसे हल करने क

  1. सूची से एन सबसे बड़े तत्वों को खोजने के लिए पायथन कार्यक्रम

    एक पूर्णांक सूची को देखते हुए, हमारा कार्य सूची में N सबसे बड़े तत्वों को खोजना है। उदाहरण Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] एल्गोरिदम Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest va