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

C . में एक स्ट्रिंग में किन्हीं दो समान वर्णों के बीच वर्णों की अधिकतम संख्या

हमें अक्षरों की एक स्ट्रिंग दी गई है। सरणी में एक ही वर्ण की कम से कम दो घटनाएं हो सकती हैं। यहाँ कार्य किसी वर्ण की किन्हीं दो घटनाओं के बीच वर्णों की अधिकतम संख्या ज्ञात करना है। यदि किसी वर्ण की पुनरावृत्ति न हो तो -1 को लौटें।

इनपुट - स्ट्रिंग str ="abcdba"

आउटपुट −एक स्ट्रिंग में किन्हीं दो समान वर्णों के बीच वर्णों की अधिकतम संख्या − 4

स्पष्टीकरण - दोहराए जाने वाले वर्ण 'ए' और 'बी' केवल इंडेक्स के साथ हैं -

1. 2‘a’ first index 0 last 5 , characters in between 5-0-1=4
2. ‘b’ first index 1 last 4 , characters in between 4-1-1=2
   Maximum character in between repeating alphabets : 4

इनपुट - स्ट्रिंग str ="AbcAaBcbC"

आउटपुट −एक स्ट्रिंग में किन्हीं दो समान वर्णों के बीच वर्णों की अधिकतम संख्या - 5

स्पष्टीकरण - दोहराए जाने वाले वर्ण 'ए', 'बी', 'सी' केवल इंडेक्स के साथ हैं -

1. ‘A’ first index 0 last 3 , characters in between 3-0-1=2
2. ‘b’ first index 1 last 7 , characters in between 7-1-1=5
3. ‘c’ first index 2 last 6 , characters in between 6-2-1=3
   Maximum character in between repeating alphabets : 5

नोट - यदि इनपुट स्ट्रिंग "abcdefg" है, तो कोई दोहराए जाने वाले वर्ण नहीं हैं, इसलिए फ़ंक्शन -1 वापस आ जाएगा।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक वर्ण सरणी लेते हैं जिसमें वर्णों की एक स्ट्रिंग होती है जैसे Str[]

  • फ़ंक्शन maxChars(char str[],int n) का उपयोग किन्हीं दो दोहराए जाने वाले अक्षरों के बीच वर्णों की अधिकतम संख्या की गणना करने के लिए किया जाता है।

  • हम वेरिएबल maxC को -1 से इनिशियलाइज़ करते हैं।

  • लूप के अंदर शुरुआत से स्ट्रिंग की सरणी को पार करें।

  • लूप के लिए नेस्टेड में शेष वर्णों को पार करें और यदि कोई हो तो दोहराव की खोज करें। (अगर (str[i] ==str[j])।

  • यदि यह सत्य है तो अनुक्रमित घटाकर वर्णों के बीच अंतर की गणना करें। (अस्थायी=j-i-1)

  • यदि यह मान अब तक अधिकतम पाया गया है, तो इसे अधिकतम सी में संग्रहीत करें।

  • संपूर्ण स्ट्रिंग को पार करने के बाद maxC लौटाएं।

उदाहरण

#include <stdio.h>
#include <stdio.h>
#include <math.h>
int maxChars(char str[],int n){
   int size = n;
   int maxC = -1;
   for (int i = 0; i < n - 1; i++)
      for (int j = i + 1; j < n; j++)
         if (str[i] == str[j]){
            int temp=abs(j-i-1);
            maxC = maxC>temp?maxC:temp;
         }
   return maxC;
}
// Driver code
int main(){
   char Str[] = "AbcAaBcbC";
   printf("Maximum number of characters between any two same character in a string :%d",
   maxChars(Str,9) );
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Maximum number of characters between any two same character in a string : 5

  1. C++ में BST के दो नोड्स के बीच अधिकतम तत्व

    समस्या कथन एन तत्वों की एक सरणी और दो पूर्णांक ए, बी को देखते हुए जो दिए गए सरणी से संबंधित है। एआर [0] से एआर [एन -1] तक तत्व डालने से बाइनरी सर्च ट्री बनाएं। कार्य A से B तक के पथ में अधिकतम तत्व को खोजना है। उदाहरण यदि सरणी {24, 23, 15, 36, 19, 41, 25, 35} है तो हम निम्न प्रकार से BST बना सकते

  1. C++ स्ट्रिंग स्थिरांक और वर्ण स्थिरांक के बीच अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल होता है। यह चार प्रकार का है। उदाहरण के लिए, ए ASCII आधारित सिस्टम पर 97 के मान के साथ चार प्रकार का है। दोहरे उद्धरण चिह्नों में एक वर्ण या वर्णों की एक स्ट्रिंग एक स्ट्रिंग अक्षर का प्रतिनिधित्व करती है। यह प्रकार का है const char[] और स्ट्रि

  1. सी # प्रोग्राम एक स्ट्रिंग में एक चरित्र की घटना की संख्या खोजने के लिए

    मान लें कि हमारा स्ट्रिंग है - स्ट्रिंग s =mynameistomhanks; अब एक नया एरे बनाएं और ऊपर घोषित स्ट्रिंग के साथ इसे एक नई विधि पास करें। यह एक स्ट्रिंग में वर्णों की घटना की गणना करता है। स्थिर शून्य गणना (स्ट्रिंग s, int[] cal) { for (int i =0; i