কম্পিউটার

পাইথনে লাইন কাউন্ট k-এর একটি স্ট্রিংকে জিগজ্যাগ স্ট্রিং-এ রূপান্তর করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s এবং আরেকটি মান k আছে, আমাদেরকে s থেকে প্রতিটি অক্ষর নিয়ে একটি নতুন স্ট্রিং খুঁজে বের করতে হবে এবং kth লাইনে না পৌঁছা পর্যন্ত উপরের বাম থেকে নীচে ডানদিকে তির্যকভাবে শুরু করতে হবে, তারপর উপরে ডানদিকে যেতে হবে, এবং তাই।

সুতরাং, যদি ইনপুটটি s ="ilovpythonprogramming" k =5 এর মত হয়, তাহলে আউটপুট হবে

পাইথনে লাইন কাউন্ট k-এর একটি স্ট্রিংকে জিগজ্যাগ স্ট্রিং-এ রূপান্তর করার প্রোগ্রাম

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • লাইন :=একটি নতুন মানচিত্র
  • cnt :=0
  • ডেল্টা :=1
  • প্রতিটি সূচী i এবং অক্ষর c-এর জন্য s, do
    • রেখার শেষে (c, i) সন্নিবেশ করুন[cnt]
    • cnt :=cnt + ডেল্টা
    • যদি cnt হয় k এর মত, তাহলে
      • ডেল্টা :=-1
      • cnt :=k - 2
    • যদি cnt 0 এর মত হয়, তাহলে
      • ডেল্টা :=1
  • উত্তর :=একটি নতুন তালিকা
  • প্রতিটি কী i এবং মানের c লাইনের জন্য, করুন
    • উপসর্গ :=s এর মতো আকারের একটি তালিকা এবং এটি একক ফাঁকা স্থান দিয়ে পূরণ করুন
    • প্রতিটি জোড়ার জন্য (x, y) c, do
      • উপসর্গ[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. হেক্স স্ট্রিংকে দশমিকে রূপান্তর করতে পাইথন প্রোগ্রাম

  2. একটি প্রদত্ত স্ট্রিং সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম

  3. স্ট্রিং এ একটি শব্দের ঘটনা গণনা করার জন্য একটি পাইথন প্রোগ্রাম লিখুন?

  4. অক্ষরের তালিকাকে একটি স্ট্রিংয়ে রূপান্তর করতে পাইথন প্রোগ্রাম