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

C++ प्रोग्राम में स्ट्रिंग से विशिष्ट वर्षों की कुल संख्या ढूंढना


परिचय

इस ट्यूटोरियल में हम एक ऐसा प्रोग्राम लिखेंगे जो दी गई स्ट्रिंग में विशिष्ट (distinct) वर्ष ढूंढता है। आइए कुछ उदाहरण देखते हैं। हम मान रहे हैं कि दिनांक प्रारूप DD/MM/YYYY है।

इनपुट - नमूना उदाहरण दिनांकों के साथ 01/11/2020, 02/12/2020, और 03/10/2019।

आउटपुट - 2

दिए गए टेक्स्ट में हमारे पास दो विशिष्ट वर्ष हैं: 2020 और 2019।

हम दिए गए स्ट्रिंग से सभी दिनांकों को निकालने के लिए रेगेक्स (regex) का उपयोग करने जा रहे हैं। यदि आप C++ में रेगेक्स से परिचित नहीं हैं, तो इस ट्यूटोरियल को देखें।

समस्या समाधान के चरण

  1. टेक्स्ट को इनिशियलाइज़ करें।
  2. टेक्स्ट से दिनांक निकालने के लिए रेगेक्स लिखें।
  3. एक खाली अनऑर्डर्ड सेट इनिशियलाइज़ करें।
  4. दिनांकों पर पुनरावृत्ति करें और वर्ष को अनऑर्डर्ड सेट में जोड़ें ताकि अद्वितीय वर्ष मिलें।
  5. सेट की लंबाई प्रिंट करें।

उदाहरण कोड

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

int uniqueYearsCount(string text) {
    // रेगेक्स
    regex date_regex("[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}");
    smatch matching_date;
    // अद्वितीय दिनांकों को स्टोर करने के लिए सेट
    unordered_set<string> dates;
    // सभी दिनांक ढूंढना
    while (regex_search(text, matching_date, date_regex)) {
        string date = matching_date[0];
        dates.insert(date.substr(date.size() - 4));
        text = matching_date.suffix();
    }
    return dates.size();
}

int main() {
    string text = "Sample example with dates 01/11/2020, 02/12/2020, and 03/10/2019.";
    cout << uniqueYearsCount(text) << endl;
    return 0;
}

आउटपुट

2

नोट

दिनांक विभिन्न प्रारूपों में हो सकते हैं। यदि आपको अलग प्रारूप में दिनांक मिलते हैं, तो रेगेक्स को उचित रूप से अपडेट करें।

निष्कर्ष

रेगेक्स और अनऑर्डर्ड सेट का उपयोग करके यह समाधान कुशलता से अद्वितीय वर्ष निकालता है। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।


  1. - C++ प्रोग्राम: Nवां गैर-फाइबोनैचि संख्या खोजना

    समस्या विवरण इस समस्या में, हमें एक पूर्णांक मान N दिया गया है। हमारा कार्य Nवीं गैर-फाइबोनैचि संख्या खोजने के लिए C++ प्रोग्राम का उपयोग करना है। फाइबोनैचि श्रृंखला पिछली दो संख्याओं को जोड़कर बाद की संख्या उत्पन्न करती है। फाइबोनैचि श्रृंखला दो संख्याओं से शुरू होती है - F0 और F1। F0 और F1 के प्र

  1. - C++ में Nवीं सम फाइबोनैचि संख्या खोजने का प्रोग्राम

    समस्या विवरण इस समस्या में, हमें एक पूर्णांक मान N दिया गया है। हमारा कार्य Nवीं सम फाइबोनैचि संख्या खोजना है। फाइबोनैचि श्रृंखला पिछली दो संख्याओं को जोड़कर बाद की संख्या उत्पन्न करती है। फाइबोनैचि श्रृंखला दो संख्याओं से शुरू होती है - F0 और F1। F0 और F1 के प्रारंभिक मान 0, 1 या 1, 1 लिए जा सकते

  1. C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना

    इस लेख में, आप एक दी गई स्ट्रिंग में बनने वाले सबस्ट्रिंग्स (गैर-खाली) की संख्या निकालने के दृष्टिकोण के बारे में जानेंगे।इनपुट: string = moon आउटपुट: 10 व्याख्या: सबस्ट्रिंग्स हैं m, o, o, n, mo, oo, on, moo, oon और moon। इनपुट: string = yellow आउटपुट: 21समाधान खोजने का दृष्टिकोणमान लें स्ट्रिंग की