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

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


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

उदाहरण के लिए, यदि इनपुट s = "ilovepythonprogramming" k = 5 है, तो आउटपुट होगा:

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

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

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

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

उदाहरण

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. पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें

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

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

    समस्या विवरण यहां यूजर एक स्ट्रिंग देता है और वह शब्द भी देता है जिसकी घटनाओं को गिनना है। हमारा कार्य घटनाओं की संख्या गिनना और प्रिंट करना है। उदाहरण programming आउटपुट:: 2 एल्गोरिदम स्ट्रिंग को स्पेस से विभाजित करें। एक काउंटर वेरिएबल c का उपयोग करें जिसे 0 से आरंभ करें। यदि शब्द मेल खाता है

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

    समस्या विवरण पायथन को इस तरह के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण सीरियलाइज़ेशन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा: [h, e, l, l, o, , w, o, r, l, d] से hello world पायथन में एक join मेथड होता है जिसका उपयोग ऐसे रूपांतरण के लिए किया जा सकत