কম্পিউটার

দীর্ঘতম সাব-স্ট্রিং খুঁজুন যা প্রিফিক্স, প্রত্যয় এবং পাইথনের স্ট্রিংয়ের ভিতরেও উপস্থিত রয়েছে


ধরুন আমাদের একটি প্রদত্ত স্ট্রিং আছে, আমাদের সবচেয়ে বড় সাব-স্ট্রিং খুঁজে বের করতে হবে যা একটি প্রিফিক্স, একটি প্রত্যয় এবং সেই প্রদত্ত স্ট্রিংটির একটি সাব-স্ট্রিং। যদি এমন কোন সাবস্ট্রিং না থাকে, তাহলে -1 রিটার্ন করুন।

সুতরাং, ইনপুট যদি "languagepythonlanguageinterestinglanguage" এর মত হয়, তাহলে আউটপুট হবে "ভাষা"

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

  • একটি ফাংশন get_lps() সংজ্ঞায়িত করুন। এটি স্ট্রিং লাগবে

  • n :=স্ট্রিংয়ের আকার

  • long_pref_suff :=n আকারের একটি অ্যারে, এবং 0

    দিয়ে পূরণ করুন
  • আকার :=0, long_pref_suff[0] :=0, i :=1

  • যখন i

    • যদি string[i] string[size] এর মত হয়, তাহলে

      • আকার :=আকার + 1

      • long_pref_suff[i] :=আকার

      • i :=i + 1

    • অন্যথায়,

      • যদি আকার 0 এর মতো না হয়, তাহলে

        • size :=long_pref_suff[আকার - 1]

      • অন্যথায়,

        • long_pref_suff[i] :=0

        • i :=i + 1

  • long_pref_suff ফেরত

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -

  • long_pref_suff :=get_lps(স্ট্রিং)

  • n :=স্ট্রিংয়ের আকার

  • যদি long_pref_suff[n - 1] 0 এর মত হয়, তাহলে

    • রিটার্ন -1

  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, করুন

    • যদি long_pref_suff[i] long_pref_suff[n - 1] এর মত হয়, তাহলে

      • স্ট্রিং এর সাবস্ট্রিং ফেরত দিন[সূচী ০ থেকে long_pref_suff[i]]

  • যদি long_pref_suff[long_pref_suff[n - 1] - 1] 0 এর সমান হয়, তাহলে

    • রিটার্ন -1

  • অন্যথায়,

    • স্ট্রিং-এর সাবস্ট্রিং ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def get_lps(string):n =len(string) long_pref_suff =[0 for i range(n)] size =0 long_pref_suff[0] =0 i =1 while (i ইনপুট 
"languagepythonlanguageinterestinglanguage"

আউটপুট

ভাষা

  1. পাইথনে n x m আকারের আয়তক্ষেত্রের ভিতরে 2x1 আকারের আয়তক্ষেত্রের সংখ্যা খুঁজুন

  2. পাইথনে দীর্ঘতম সাধারণ উপসর্গ

  3. পাইথনে একটি স্ট্রিং প্রথম বার বার শব্দ খুঁজুন?

  4. পাইথনে একটি স্ট্রিং এবং একটি বাইট স্ট্রিংয়ের মধ্যে পার্থক্য কী?