ছোটদের প্রোগ্রামিং শেখা এখন আগের চেয়েও সহজ। কারণ দ্বিমিক প্রকাশনী থেকে বের হয়েছে তামিম শাহরিয়ার সুবিন-এর "পাইথন দিয়ে প্রোগ্রামিং শেখা"! বিস্তারিত জানতে এখানে ক্লিক করুন

খোঁজ দ্য সার্চ - ১

সমস্যাটি তৈরি করেছেন তানভীরুল ইসলাম (পিএইচডি অধ্যয়নরত, ন্যাশনাল ইউনিভার্সিটি অব সিঙ্গাপুর)

দুইটি স্ট্রিং দেওয়া থাকবে যার দ্বিতীয়টি প্রথমটির সাবস্ট্রিং। খুঁজে বের করতে হবে প্রথমটিতে সাবস্ট্রিংটি সর্বপ্রথম কোথা থেকে শুরু হয়েছে। উল্লেখ্য, কোনো স্ট্রিং এর একটানা কোনো অংশকে বলে তার সাবস্ট্রিং। যেমন, banana এর একটা সাবস্ট্রিং ana এবং এটা সর্ব প্রথম শুরু হয়েছে 1 তম স্থান থেকে। আরেকটি সাবস্ট্রিং ban যা শুরু হয়েছে 0 তম স্থান থেকে। ওদিকে anna প্রথম স্ট্রিংটির বৈধ সাবস্ট্রিং নয়।

ইনপুট
প্রথম লাইনে একটি সংখ্যা থাকবে। ওই সংখ্যার মান যত, এর পরে ততগুলো লাইনে দুইটি করে স্ট্রিং থাকবে। প্রতিটি স্ট্রিংএর দৈর্ঘ্য 128 এর কম এবং স্ট্রিং দুটি একটি স্পেস দিয়ে আলাদা।

আউটপুট
প্রতিলাইনের জন্য সেই লাইনের দ্বিতীয় স্ট্রিংটি প্রথম স্ট্রিংতে সর্বপ্রথম কোথা থেকে শুরু হয়েছে তা বলতে হবে।


৫২টি প্রোগ্রামিং সমস্যা ও সমাধান বইতে এই সমস্যার সমাধান নিয়ে আলোচনা করা হয়েছে।

৪টি মন্তব্য:

  1. আমার কোডটা ঠিকমত কাজ করছে, ইনপুট আউটপুটেও সমস্যা নাই। কিন্তু সাবমিট করতে গেলে সেগমেন্ট ভায়োলেশনের ওয়ার্নিং দিচ্ছে।
    এখানে কোডটা আছে।
    pastebin.com/FGH1ueCd

    উত্তরমুছুন
    উত্তরগুলি
    1. ইনপুট নেওয়ায় সমস্যা আছে। প্রতিটা স্ট্রিং পড়া শেষে '\0' যোগ করে দিতে হবে।

      মুছুন
  2. এছাড়া আপনি আরো সহজেই ইনপুট নিতে পারেন। scanf ("%s %s", str1, str2); - এভাবে।

    উত্তরমুছুন
  3. প্রথমে gets() দিয়ে input নিলাম,তখন Time limit exceeded আসলো। এখন scanf() দিয়ে করলাম। এবার accepted!
    এর কারণ কি?

    উত্তরমুছুন

এখানে বিষয়সংশ্লিষ্ট মন্তব্য কিংবা প্রশ্ন করা যাবে। বাংলায় মন্তব্য করার সময় বাংলা হরফে লিখতে হবে। আর রোমান হরফে লিখলে ইংরেজিতে লিখতে হবে। নতুবা মন্তব্য প্রকাশ করা হবে না। ধন্যবাদ।