Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

दिए गए स्ट्रिंग का सबसे लंबा उपसर्ग प्रिंट करें जो 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. किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है जिसकी हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # conversion def toString(List):    return &

  1. एक स्ट्रिंग में समान लंबाई के शब्दों को प्रिंट करने के लिए पायथन प्रोग्राम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक स्ट्रिंग को देखते हुए हमें स्ट्रिंग के सभी शब्दों को सम लंबाई के साथ प्रदर्शित करने की आवश्यकता है। दृष्टिकोण स्प्लिट () फ़ंक्शन का उपयोग करके इनपुट स्ट्रिंग को विभाजित करें। के लिए . का

  1. पायथन प्रोग्राम यह जाँचने के लिए कि क्या दिया गया स्ट्रिंग पैंग्राम है

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक स्ट्रिंग इनपुट को देखते हुए, हमें यह जांचने के लिए एक पायथन प्रोग्राम जेनरेट करना होगा कि वह स्ट्रिंग पंग्राम है या नहीं। पंग्राम एक वाक्य/शब्दों की श्रृंखला है जिसमें अंग्रेजी अक्षर संग्रह मे