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

C++ में देखे गए शहरों का सही क्रम खोजने का कार्यक्रम

मान लीजिए कि हमारे पास प्रस्थान और आगमन हवाई अड्डों के जोड़े द्वारा दर्शाए गए एयरलाइन टिकटों की एक सूची है, जैसे [से, से], हमें यात्रा कार्यक्रम को सही क्रम में फिर से बनाना होगा। सभी टिकट केएलके से प्रस्थान करने वाले व्यक्ति के हैं। इसलिए, यात्रा कार्यक्रम JFK से शुरू होना चाहिए।

तो अगर इनपुट [["एमयूसी", "एलएचआर"], ["केएलके", "एमयूसी"], ["एसएफओ", "एसजेसी"], ["एलएचआर", "एसएफओ"]] जैसा है, तो आउटपुट ["KLK", "MUC", "LHR", "SFO", "SJC"] होगा।

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

  • एरे रेट और ग्राफ नामक मानचित्र को परिभाषित करें।

  • विज़िट नामक विधि को परिभाषित करें। यह इनपुट के रूप में एयरपोर्ट का नाम लेगा

  • जबकि ग्राफ का आकार [एयरपोर्ट] 0 नहीं है

    • x :=ग्राफ का पहला तत्व [हवाई अड्डा]

    • ग्राफ़ [एयरपोर्ट]

      . से पहला तत्व हटाएं
    • कॉल विज़िट(x)

  • हवाई अड्डे को रिट में डालें

  • अब मुख्य विधि से निम्न कार्य करें -

  • मेरे लिए 0 से लेकर टिकर सरणी के आकार तक

    • यू:=टिकट [i, 0], वी:=टिकट [i, 1], ग्राफ में वी डालें[यू]

  • विज़िट ("केएलके") क्योंकि यह पहला हवाई अड्डा है

  • सूची को उलट दें और वापस लौटें

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

उदाहरण

#include <bits/stdc++.h>
using name space std;
void print_vector(vector<auto> v){
   cout < "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector <string> ret;
   map < string, multiset <string> > graph;
   vector<string> findItinerary(vector<vector<string>>& tickets) {
      for(int i = 0; i < tickets.size(); i++){
         string u = tickets[i][0];
         string v = tickets[i][1];
         graph[u].insert(v);
      }
      visit("KLK");
      reverse(ret.begin(), ret.end());
      return ret;
   }
   void visit(string airport){
      while(graph[airport].size()){
         string x = *(graph[airport].begin());
         graph[airport].erase(graph[airport].begin());
         visit(x);
      }
      ret.push_back(airport);
   }
};
main(){
   Solution ob;
   vector<vector<string>> v ={{"MUC","LHR"},{"KLK","MUC"},{"SFO","SJC"},{"LHR","SFO"}};
   print_vector(ob.findItinerary(v));
}

इनपुट

{{"MUC","LHR"},{"KLK","MUC"},{"SFO","SJC"},{"LHR","SFO"}}

आउटपुट

[KLK, MUC, LHR, SFO, SJC, ]

  1. C++ में एक लाइन के मध्य-बिंदु को खोजने का प्रोग्राम

    इस समस्या में, हमें दो बिंदु A और B दिए गए हैं, जो एक रेखा के आरंभ और अंत बिंदु हैं। हमारा काम C++ में एक लाइन के मध्य-बिंदु को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - यहाँ, हमारे पास एक रेखा है जिसमें शुरुआती और अंत बिंदु A(x1, y1) और B(x2, y2) हैं। और हमें रेखा के मध्य-बिंदु को खोजन

  1. C++ में त्रिभुज के केंद्रक को खोजने का कार्यक्रम

    इस समस्या में, हमें एक 2D सरणी दी गई है जो त्रिभुज के तीन शीर्षों के निर्देशांकों को दर्शाती है। हमारा काम C++ में त्रिभुज के Centroid को खोजने के लिए एक प्रोग्राम बनाना है। सेंट्रोइड त्रिभुज का वह बिंदु है जिस पर त्रिभुज की तीन माध्यिकाएं प्रतिच्छेद करती हैं। माध्यिका त्रिभुज की वह रेखा है जो त्र

  1. पायथन में हवाई अड्डों को सही क्रम में खोजने का कार्यक्रम?

    मान लीजिए कि हमारे पास [मूल, गंतव्य] जोड़े के रूप में उड़ानों की एक सूची है। सूची में फेरबदल किया गया है; हमें उन सभी हवाई अड्डों को ढूंढना है जो सही क्रम में देखे गए थे। यदि एक से अधिक वैध यात्रा कार्यक्रम हैं, तो पहले शब्दावली की दृष्टि से सबसे छोटे को वापस करें। इसलिए, यदि इनपुट फ्लाइट्स =[[मुंब