কম্পিউটার

প্রদত্ত স্ট্রিংয়ের দীর্ঘতম উপসর্গটি প্রিন্ট করুন যা C প্রোগ্রামে একই স্ট্রিংয়ের প্রত্যয়।


একটি স্ট্রিং দেওয়া হয়েছে যেখানে আমাদের পরীক্ষা করতে হবে যে দীর্ঘতম উপসর্গের দৈর্ঘ্য যা স্ট্রিংয়ের একটি প্রত্যয়ও যেমন একটি স্ট্রিং "abcab" আছে তাই এখানে "ab" দৈর্ঘ্য 2 এবং একই উপসর্গ সহ দীর্ঘতম সাবস্ট্রিং এবং প্রত্যয়।

উদাহরণ

Input: str[] = { “aabbccdaabbcc” }
Output: 6
Input: abdab
Output: 2

যদি আমরা স্ট্রিং এর শুরু এবং শেষ থেকে পয়েন্টার শুরু করি তবে সেগুলি কিছু সময়ে ওভারল্যাপ হয়ে যাবে তাই এটি করার পরিবর্তে আমরা স্ট্রিংটিকে মাঝখান থেকে ভেঙ্গে বাম এবং ডান স্ট্রিং মেলাতে শুরু করব। যদি তারা মিলিত স্ট্রিংগুলির একটির সমান রিটার্ন সাইজ হয় তবে উভয় দিকে ছোট দৈর্ঘ্যের জন্য চেষ্টা করুন৷

অ্যালগরিদম

int longest(char str[], int n)
START
STEP 1 : DECLARE length AS 0 AND i AS n/2
STEP 2 : IF n < 2 THEN
   RETURN 1
STEP 3 :LOOP WHILE TILL str[i]!='\0'
   IF str[i] == str[length] THEN,
      INCREMENT length BY 1
      INCREMENT i BY 1
   ELSE
      IF length == 0 THEN,
         INCREMENT i BY 1
      ELSE
         DECREMENT length BY 1
      END IF
   END IF
END WHILE
RETURN length
STOP

উদাহরণ

#include <stdio.h>
int longest(char str[], int n){
   int length = 0, i = n/2;
   if( n < 2 )
      return 1;
   while( str[i]!='\0' ){
      //When we find the character like prefix in suffix,
      //we will move the length and i to count the length of the similar prefix and suffix
      if (str[i] == str[length]){
         ++length;
         ++i;
      } else //When prefix and suffix not equal{
         if(length == 0)
            ++i;
         else
            --length;
      }
   }
   return length;
}
int main(int argc, char const *argv[]){
   char str[] = {"abccmmabcc"};
   int n = sizeof(str)/sizeof(str[0]);
   int length = longest(str, n);
   printf("Length = %d", length);
   return 0;
}

আউটপুট

যদি আমরা উপরের প্রোগ্রামটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে:

Length = 4

  1. C প্রোগ্রামে 'X' ফরম্যাটে বিজোড় দৈর্ঘ্যের স্ট্রিং প্রিন্ট করুন।

  2. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর সমস্ত স্থানান্তর প্রিন্ট করতে

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

  4. প্রদত্ত স্ট্রিং প্যানগ্রাম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম