সিরিজ

সিরিজ

মধ্যম

নির্দেশনা

সংখ্যার একটি স্ট্রিং দেওয়া হলে, সেই স্ট্রিংয়ের ভেতরে n দৈর্ঘ্যের সব সংলগ্ন সাবস্ট্রিং যে ক্রমে আছে সেই ক্রমে আউটপুট দিন।

উদাহরণস্বরূপ, "49142" স্ট্রিংটিতে ৩ সংখ্যার সিরিজগুলো হলো:

  • "491"
  • "914"
  • "142"

আর ৪ সংখ্যার সিরিজগুলো:

  • "4914"
  • "9142"

আর ৫ সংখ্যার একটি স্ট্রিং থেকে যদি ৬ সংখ্যার সিরিজ চান, তাহলে যা-ই পান না কেন, তা আপনার প্রাপ্য।

লক্ষ্য করুন, এই সিরিজগুলো ইনপুটে কেবল পাশাপাশি অবস্থানে থাকলেই হয়; অঙ্কগুলো সংখ্যাগতভাবে পরপর হওয়ার দরকার নেই।

ইঙ্গিত

এই অনুশীলনীটি সম্পূর্ণ করতে হলে আপনাকে slices ফাংশনটি ইমপ্লিমেন্ট করতে হবে, যা একটি টেক্সট নিয়ে নির্দিষ্ট আকারের ডিজিটের উপ-অনুক্রম রিটার্ন করে:

এই অনুশীলনীটি যদি আপনি প্রথমবার সমাধান করছেন, তাহলে দেওয়া সিগনেচারটিই ধরে রাখার পরামর্শ দেওয়া হচ্ছে:

slices :: Int -> String -> [[Int]]

পরে এই সমস্যাটিতে আবার ফিরে এসে অন্য ডেটা টাইপ ও লাইব্রেরি নিয়ে খেলা ভালো হতে পারে:

  • ByteString, bytestring প্যাকেজ থেকে।
  • Sequence, containers প্যাকেজ থেকে।
  • Text, text প্যাকেজ থেকে।
  • Vector, vector প্যাকেজ থেকে।

টেস্ট স্যুটটি ইচ্ছাকৃতভাবেই এমনভাবে তৈরি করা হয়েছে যাতে বোধগম্য প্রায় যেকোনো টাইপ সিগনেচার গ্রহণ করে, তাই আপনার কাছে যেটি সবচেয়ে ভালো মনে হয়, সেটি খুঁজে বের করতে আপনাকে উৎসাহিত করা হচ্ছে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Haskell Exercism

সিরিজ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।