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

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


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

  • राशि $1000 से अधिक है, या;
  • यदि यह 60 मिनट के भीतर (सम्मिलित) किसी अन्य लेनदेन से होता है जिसका नाम समान है लेकिन शहर अलग है।

यहां प्रत्येक लेनदेन स्ट्रिंग transactions[i] में कॉमा से अलग मान होते हैं जो नाम, समय (मिनट में), राशि, और लेनदेन के शहर का प्रतिनिधित्व करते हैं। हमारे पास लेनदेन की एक सूची है, उन लेनदेन की सूची ढूंढें जो संभवतः अमान्य हैं।

उदाहरण के लिए, यदि इनपुट ["alice,20,800,mtv", "bob,50,1200,mtv"] जैसा है, तो उत्तर ["bob,50,1200,mtv"] होगा।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • एक सेट s परिभाषित करें। एक मैप m परिभाषित करें
  • i को 0 से t के आकार - 1 तक लूप करें
    • x := t[i]
    • temp := स्ट्रिंग x का उपयोग करके नोड
    • j को 0 से m[temp के नाम] के आकार तक लूप करें
      • y := m[temp के नाम][j]
      • यदि y का शहर temp के शहर नहीं है और |y का समय - temp का समय| <= 60
        • नोड y को स्ट्रिंग के रूप में सेट s में डालें, और x को s में डालें
    • यदि temp की राशि > 1000, तो x को s में डालें
    • temp को m[temp के नाम] में डालें
  • सेट s में आइटम लौटाएं

उदाहरण (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++ में थ्रेडेड बाइनरी ट्री का इनऑर्डर ट्रैवर्सल C++ में थ्रेडेड बाइनरी ट्री का इनऑर्डर ट्रैवर्सल

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

  1. - C++ में regex_error

    रेगुलर एक्सप्रेशन एरर्स रेगुलर एक्सप्रेशन लाइब्रेरी में रेगुलर एक्सप्रेशन्स से संबंधित विभिन्न मेथड्स और फीचर्स होते हैं। रेगुलर एक्सप्रेशन्स को एक्जीक्यूट करते समय हमें कुछ एरर्स मिल सकते हैं। ये एरर्स std::regex_error एक्सेप्शन के रूप में फेंके जाते हैं। सामान्य regex_error कोड्स एरर कोडविवरण

  1. - C++ में कॉम्बिनेशन्स

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