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

C++ में अमान्य लेनदेन

मान लीजिए कि कुछ लेनदेन हैं। लेन-देन संभवतः अमान्य है यदि -

  • राशि $1000 से अधिक है, या;

  • अगर यह एक अलग शहर में एक ही नाम के साथ एक और लेनदेन के 60 मिनट के भीतर (और इसमें शामिल) होता है।

यहां प्रत्येक लेन-देन स्ट्रिंग लेनदेन [i] में अल्पविराम से अलग किए गए मान होते हैं जो लेन-देन के नाम, समय (मिनटों में), राशि और शहर का प्रतिनिधित्व करते हैं। हमारे पास लेन-देन की एक सूची है, लेन-देन की एक सूची खोजें जो संभवतः अमान्य हैं। तो अगर इनपुट ["alice,20,800,mtv", "bob,50,1200,mtv"] जैसा है, तो जवाब होगा ["bob,50,1200,mtv"]।

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

  • सेट एस को परिभाषित करें। नक्शा परिभाषित करें मी

  • मैं के लिए 0 से t - 1 के आकार के बीच

    • एक्स:=टी[i]

    • अस्थायी:=स्ट्रिंग x का उपयोग कर नोड

    • j के लिए 0 से लेकर m के आकार तक [अस्थायी का नाम]

      • वाई:=एम [अस्थायी का नाम] [जे]

      • यदि y का शहर तापमान का शहर नहीं है और |y का समय - अस्थायी का समय| -=60

        • नोड y को सेट s में स्ट्रिंग के रूप में डालें, और x को s में डालें

    • यदि तापमान> 1000 की मात्रा है, तो s में x डालें

    • एम [अस्थायी का नाम] में अस्थायी डालें

  • सेट में आइटम लौटाएं

उदाहरण(C++)

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

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Node{
   public:
   string name;
   string city;
   int time;
   int amount;
};
class Solution {
   public:
   Node getNode(string s){
      string temp = "";
      Node ret;
      int cnt = 0;
      for(int i = 0; i < s.size(); i++){
         if(s[i] == ','){
            if(cnt == 0){
               ret.name = temp;
            }
            else if(cnt == 1){
               ret.time = stoi(temp);
            }
            else if(cnt == 2){
               ret.amount = stoi(temp);
            } else {
               ret.city = temp;
            }
            cnt++;
            temp = "";
            continue;
         }
         temp += s[i];
      }
      ret.city = temp;
      return ret;
   }
   vector<string> invalidTransactions(vector<string>& t) {
      set <string >s;
      map <string ,vector < Node >> m;
      for(int i = 0; i < t.size(); i++){
         string x = t[i];
         Node temp = getNode(x);
         for(int j = 0; j < m[temp.name].size(); j++){
            Node y = m[temp.name][j];
            if(y.city != temp.city && abs(y.time - temp.time) <= 60){
               s.insert(y.name + "," + to_string(y.time) + "," + to_string(y.amount) + "," + y.city);
               s.insert(x);
            }
         }
         if(temp.amount > 1000){
            s.insert(x);
         }
         m[temp.name].push_back(temp);
      }
      vector <string> ret(s.begin(), s.end());
      return ret;
   }
};
main(){
   vector<string> v1 = {"alice,20,800,mtv","bob,50,1200,mtv"};
   Solution ob;
   print_vector(ob.invalidTransactions(v1));
}

इनपुट

["alice,20,800,mtv","bob,50,1200,mtv"]

आउटपुट

[bob,50,1200,mtv, ]

  1. C++ में एक थ्रेडेड बाइनरी ट्री का इनऑर्डर ट्रैवर्सल

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

  1. सी ++ में regex_error

    रेगेक्स लाइब्रेरी में नियमित अभिव्यक्तियों से संबंधित विभिन्न विधियां और विशेषताएं हैं। यहां हम कुछ regex_errors देखेंगे। ये रेगेक्स लाइब्रेरी में भी मौजूद हैं। कुछ रेगुलर एक्सप्रेशन निष्पादित करने के दौरान, हमें कुछ त्रुटियाँ मिलती हैं। उन त्रुटियों का उल्लेख यहाँ किया गया है। झंडे त्रुटियां erro

  1. सी ++ में संयोजन

    मान लीजिए कि हमारे पास दो पूर्णांक n और k हैं। हमें 1 ... n में से k संख्याओं के सभी संभावित संयोजनों को खोजना है। तो अगर n =4 और k =2, तो संयोजन [[1,2], [1,3], [1,4], [2,3], [2,4], [3,4 होंगे। ]] इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - हम इसे हल करने के लिए पुनरावर्ती फ़ंक्शन का उपयोग कर