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

C/C++ में इंडेक्स रेंज के भीतर बाइनरी स्ट्रिंग को व्यवस्थित करके अधिकतम वैल्यू प्राप्त करना

केवल 0's और 1's से बनी दी गई स्ट्रिंग के मामले में, हमें M नॉन-इंटरसेक्टिंग रेंज A, B (A <= B) दिए गए हैं, अधिक विशेष रूप से [A1, B1], [A2, B2], ..., [AM, BM], इनमें से कोई भी दो अंतराल ओवरलैप नहीं करते - औपचारिक रूप से, प्रत्येक वैध i, j के लिए जैसे कि i!=j, या तो Ai

गतिविधि एक वैध क्रमपरिवर्तन ढूंढना है जो निम्नलिखित दो शर्तों को एक साथ पूरा करेगा -

  • सभी M दी गई रेंज के बीच संख्याओं का योग सबसे बड़ा होगा।

  • स्ट्रिंग लेक्सिकोग्राफिकली अधिकतम होगी। स्ट्रिंग 1100 स्ट्रिंग 1001 से लेक्सिकोग्राफिकली अधिक है।

उदाहरण

Input
11100
3
3 4
5 5
Output
00111
पहले हम 1's को पोजीशन 3 और 4 पर रखते हैं फिर 5 पर क्योंकि 1's नहीं बचे, बनी स्ट्रिंग 00111 है।
Input
0000111
2
1 1
1 2
Output
1110000

उपरोक्त उदाहरण में हम पहले 1 को 1st और 2nd पोजीशन पर रखते हैं फिर हमारे पास एक और '1' बचता है,

तो, हम इसे लेक्सिकोग्राफिकली स्ट्रिंग को अधिकतम करने के लिए उपयोग करते हैं और इसे 3rd पोजीशन पर रखते हैं और इस प्रकार पुनर्व्यवस्था पूरी होती है।

  1. - C++ में बाइनरी सर्च का उपयोग करके स्ट्रिंग खोजना

    स्ट्रिंग में बाइनरी सर्च में, हमें स्ट्रिंग्स का एक सॉर्टेड ऐरे दिया जाता है और हमें बाइनरी सर्च एल्गोरिदम का उपयोग करके स्ट्रिंग्स के ऐरे में एक स्ट्रिंग को खोजना होता है। उदाहरण इनपुट: stringArray = {I, Love, Programming, tutorials, point}. एलिमेंट = programming आउटपुट: स्ट्रिंग इंडेक्स 3 पर मिल

  1. - C++ में संयोजित बाइनरी स्ट्रिंग में अधिकतम लगातार शून्य

    मान लीजिए हमारे पास लंबाई n की एक बाइनरी स्ट्रिंग है, एक अन्य मान k दिया गया है। हमें बाइनरी स्ट्रिंग को k बार संयोजित करना है। फिर हमें संयोजित स्ट्रिंग में अधिकतम लगातार 0 की संख्या ढूंढनी है। मान लीजिए बाइनरी स्ट्रिंग 0010010 है, और k = 2, तो k बार स्ट्रिंग संयोजित करने के बाद, यह 00100100010010

  1. - C/C++ में स्ट्रिंग को रिवर्स करना

    उदाहरण #include <stdio.h> #include <string.h> int main() { char s[50], t; int i = 0, j = 0; printf(\nरिवर्स करने के लिए स्ट्रिंग दर्ज करें: ); gets(s); j = strlen(s) - 1; while (i < j) { t = s[i]; s[i] = s[j]; s[j] = t; i++;