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

C++ में अर्दली कतार

मान लीजिए कि एक स्ट्रिंग S है। S के सभी अक्षर लोअरकेस में हैं। फिर, हम कितनी भी चालें चल सकते हैं।

यहां, प्रत्येक चाल में, हम पहले K अक्षरों में से एक को चुनते हैं, और इसे हटाते हैं, और इसे स्ट्रिंग के अंत में रखते हैं। हमें किसी भी संख्या में चालों के बाद लेक्सिकोग्राफ़िक रूप से सबसे छोटी स्ट्रिंग ढूंढनी होगी।

इसलिए, यदि इनपुट "cabaa" और K =3 जैसा है, तो आउटपुट "aaabc" होगा

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • अगर के> 1, तो -

    • सरणी S को सॉर्ट करें

    • वापसी एस

  • रिट:=एस

  • n :=S का आकार

  • इनिशियलाइज़ करने के लिए मैं :=1, जब i

    • S :=S के पहले अक्षर को काटें और अंत में S में जोड़ें

    • अगर एस <रिट, तो -

      • रिट =एस

  • वापसी रिट

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   string orderlyQueue(string S, int K) {
      if(K > 1){
         sort(S.begin(), S.end());
         return S;
      }
      string ret = S;
      int n = S.size();
      for(int i = 1; i < n; i++){
         S = S.substr(1) + S.substr(0, 1);
         if(S < ret) ret = S;
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.orderlyQueue("cabaa", 3));
}

इनपुट

"cabaa", 3

आउटपुट

aaabc

  1. सी/सी++ में प्राथमिकता कतार परिचय

    एक प्राथमिकता कतार एक प्रकार की कतार है जिसमें तत्वों को उन्हें सौंपी गई प्राथमिकताओं के अनुसार डाला या हटा दिया जाता है जहां प्राथमिकता एक पूर्णांक मान है जो 0-10 के बीच हो सकता है जहां 0 तत्व को सर्वोच्च प्राथमिकता के साथ दिखाता है और 10 तत्व को दिखाता है सबसे कम प्राथमिकता। प्राथमिकता कतार को लाग

  1. C++ में दिए गए समय पर कतार की व्यवस्था ज्ञात कीजिए

    इस समस्या में, हमें केवल M और F वर्णों और एक समय t से मिलकर बनी एक स्ट्रिंग दी जाती है। हमारा काम है एक निश्चित समय पर कतार की व्यवस्था का पता लगाना । स्ट्रिंग बस में प्रवेश करने के लिए एक आम कतार में खड़े लोगों को परिभाषित करती है। कतार में लगे सभी पुरुष इतने शिष्ट हैं कि यदि वे किसी भी समय अपने प

  1. सी ++ कतार का उपयोग करके बीएसटी में पथ को उलट दें

    एक बाइनरी सर्च ट्री को देखते हुए, और उदाहरण के लिए, हमें किसी विशेष कुंजी से इसके पथ को उलटने की आवश्यकता होती है। समाधान खोजने के लिए दृष्टिकोण इस दृष्टिकोण में, हम एक कतार बनाएंगे और सभी नोड्स को तब तक धकेलेंगे जब तक हमें रूट नहीं मिल जाता। उदाहरण   #include <bits/stdc++.h> using n