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

पायथन में एक स्ट्रिंग को लाइन काउंट k के ज़िगज़ैग स्ट्रिंग में बदलने का कार्यक्रम

मान लीजिए कि हमारे पास एक स्ट्रिंग s और दूसरा मान k है, हमें s से प्रत्येक वर्ण लेकर और kth लाइन तक पहुंचने तक ऊपर से नीचे दाईं ओर तिरछे शुरू करके एक नई स्ट्रिंग ढूंढनी है, फिर ऊपर दाईं ओर जाना है, और इसी तरह।

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

पायथन में एक स्ट्रिंग को लाइन काउंट k के ज़िगज़ैग स्ट्रिंग में बदलने का कार्यक्रम

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

  • पंक्ति:=एक नया नक्शा
  • सीएनटी:=0
  • डेल्टा:=1
  • प्रत्येक अनुक्रमणिका i और s में वर्ण c के लिए, करें
    • पंक्ति के अंत में (c, i) डालें[cnt]
    • सीएनटी:=सीएनटी + डेल्टा
    • यदि cnt, k के समान है, तो
      • डेल्टा:=-1
      • सीएनटी:=के - 2
    • यदि cnt 0 के समान है, तो
      • डेल्टा:=1
  • उत्तर:=एक नई सूची
  • प्रत्येक कुंजी के लिए i और मूल्य c पंक्ति में, करते हैं
    • उपसर्ग :=s के समान आकार की एक सूची और उसे एकल रिक्त स्थान से भरें
    • सी में प्रत्येक जोड़ी (x, y) के लिए, करें
      • उपसर्ग[y] :=x
    • उपसर्ग में मौजूद प्रत्येक तत्व से जुड़ें और इसे उत्तर में डालें
  • उत्तर में लगातार प्रत्येक तत्वों के बीच एक नई लाइन जोड़कर एक नई स्ट्रिंग लौटाएं

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

उदाहरण

from collections import defaultdict
class Solution:
   def solve(self, s, k):
      line = defaultdict(list)
      cnt = 0
      delta = 1
      for i, c in enumerate(s):
         line[cnt].append((c, i))
         cnt += delta
         if cnt == k:
            delta = -1
            cnt = k - 2
         if cnt == 0:
            delta = 1

      ans = []

      for i, c in line.items():
         prefix = [" "] * (len(s))
         for x, y in c:
            prefix[y] = x
         ans.append("".join(prefix))

      return "\n".join(ans)

ob = Solution()
s = "ilovepythonprogramming"
k = 5
print(ob.solve(s, k))

इनपुट

"ilovepythonprogramming", 5

आउटपुट

पायथन में एक स्ट्रिंग को लाइन काउंट k के ज़िगज़ैग स्ट्रिंग में बदलने का कार्यक्रम


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

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

  1. स्ट्रिंग में किसी शब्द की घटनाओं को गिनने के लिए एक पायथन प्रोग्राम लिखें?

    यहां उपयोगकर्ता ने एक स्ट्रिंग दी और उपयोगकर्ता ने घटनाओं की संख्या गिनने के लिए शब्द भी दिया। हमारा काम घटनाओं की संख्या गिनना और उसे प्रिंट करना है। उदाहरण programming Output:: 2 एल्गोरिदम wordoccurences(n,p) /* n is input string and p is the word to count occurrence */ Step 1: split the string

  1. वर्णों की सूची को एक स्ट्रिंग में बदलने के लिए पायथन प्रोग्राम

    पायथन को इस प्रकार के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण क्रमांकन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा - ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd&