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

C++ में केवल एक स्वैप ऑपरेशन का उपयोग करके संभव सबसे बड़ी छोटी संख्या


इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दिए गए संख्या n से छोटी एक स्वैप के साथ सबसे बड़ी संख्या ढूंढता है।

आइए समस्या को हल करने के चरण देखते हैं।

  • संख्या n आरंभ करें।
  • स्ट्रिंग के अंत से पुनरावृति करें और उस अंक का इंडेक्स ढूंढें जो अपने अगले अंक से बड़ा है। इसे एक वेरिएबल में स्टोर करें।
  • जैसे ही आप इसे ढूंढ लें लूप तोड़ें।
  • स्ट्रिंग के अंत से उपरोक्त इंडेक्स तक संख्या पर पुनरावृति करें।
    • उस अंक का इंडेक्स ढूंढें जो उपरोक्त इंडेक्स वाले अंक से छोटा है और क्षेत्र में सभी से बड़ा है।
  • उपरोक्त दो इंडेक्स पर अंकों को स्वैप करें। अपडेट की गई संख्या वापस करें।

उदाहरण

आइए कोड देखते हैं।

#include <bits/stdc++.h> 
using namespace std; 

string getTheNumber(string str) { 
    int length = str.length(); 
    int index = -1; 
    for (int i = length - 2; i >= 0; i--) { 
        if (str[i] > str[i+1]) { 
            index = i; 
            break; 
        } 
    } 
    int smallerDigitIndex = -1; 
    for (int i = length - 1; i > index; i--) { 
        if (str[i] < str[index]) { 
            if (smallerDigitIndex == -1 || str[i] >= str[smallerDigitIndex]) { 
                smallerDigitIndex = i; 
            } 
        } 
    } 
    if (index == -1) { 
        return "-1"; 
    } 
    if (smallerDigitIndex != -1) { 
        swap(str[index], str[smallerDigitIndex]); 
        return str; 
    } 
    return "-1"; 
} 

int main() { 
    string str = "54624"; 
    cout << getTheNumber(str) << endl; 
    return 0; 
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

54426

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।


  1. - C++ का उपयोग करके ग्रिड में एक बिंदु से दूसरे बिंदु तक जाने के तरीकों की संख्या खोजना

    इस लेख में, हमें एक प्रश्न दिया गया है जिसमें हमें बिंदु A से B तक जाने के कुल तरीकों की संख्या खोजने की आवश्यकता है जहां A और B निश्चित बिंदु हैं, यानी A ग्रिड में शीर्ष-बाएं बिंदु है और B ग्रिड में नीचे-दाएं बिंदु है। उदाहरण के लिए: इनपुट: N = 5 आउटपुट: 252 इनपुट: N = 4 आउटपुट: 70 इनपुट: N = 3

  1. - C++ में एक स्ट्रिंग के सबस्ट्रिंग्स की संख्या जो दूसरी स्ट्रिंग में मौजूद हैं

    इस लेख में, हमें दो स्ट्रिंग्स दी गई हैं, और हमें यह पता लगाना है कि पहली स्ट्रिंग के कितने सबस्ट्रिंग दूसरी स्ट्रिंग में पाए जा सकते हैं (सटीक सबस्ट्रिंग कई बार हो सकती है)। उदाहरण के लिएइनपुट: string1 = fogl    string2 = google आउटपुट: 6 व्याख्या: string1 के string2 में मौजूद सबस्ट्रिंग्

  1. C++ का उपयोग करके दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करें C++ का उपयोग करके दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करें

    यूक्लिडियन प्लेन ज्यामिति में एक चतुर्भुज चार शीर्षों और चार किनारों के साथ एक बहुभुज बनाता है। नाम 4-gon आदि। चतुर्भुजों के अन्य नामों में शामिल हैं और कभी-कभी उन्हें वर्ग, डिस्प्ले स्टाइल आदि के रूप में भी जाना जाता है।इस लेख में, हम दिए गए बिंदुओं से संभावित चतुर्भुजों की संख्या ज्ञात करने के दृष