একটি স্ট্রিং s এবং লাইন সংখ্যা k দেওয়া আছে। স্ট্রিংকে জিগজ্যাগ প্যাটার্নে লিখে লাইন বাই লাইন আউটপুট দিন।
উদাহরণ: s="ilovepythonprogramming", k=5 → আউটপুট ছবির মতো।
সমাধানের ধাপগুলো:
- লাইন অনুযায়ী ক্যারেক্টার সংগ্রহ করুন।
- ডায়াগোনাল mouvemেন্ট için ডেল্টা ব্যবহার করুন।
- প্রতিটি লাইনের জন্য স্পেস প্যাডিং দিয়ে স্ট্রিং বানান।
- লাইনগুলো নয়ালাইন দিয়ে জড়িয়ে দিন।
উদাহরণ
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
আউটপুট
