কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্রিং থেকে ডিস্টিংক্ট ইয়ার (Distinct Years) বের করা

এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা দেওয়া স্ট্রিং-এ ডিস্টিংক্ট ইয়ার বের করবে। কিছু উদাহরণ দেখি। আমরা ধরে নিচ্ছি ডেট ফরম্যাট হলো DD/MM/YYYY।

ইনপুট - Sample example with dates 01/11/2020, 02/12/2020, and 03/10/2019.

আউটপুট - 2

দেওয়া টেক্সটে দুটি ডিস্টিংক্ট ইয়ার আছে 2020 এবং 2019।

দেওয়া স্ট্রিং থেকে সব ডেট এক্সট্র্যাক্ট করার জন্য আমরা regex ব্যবহার করব। যদি আপনি C++-এ regex-এ অভ্যস্ত নাও হন, তবে এই টিউটোরিয়াল দেখতে পারেন।

সমস্যাটি সমাধান করা যাক।

  • টেক্সট ইনিশিয়ালাইজ করুন।
  • টেক্সট থেকে ডেট এক্সট্র্যাক্ট করার regex লিখুন।
  • একটি খালি আনঅর্ডার্ড সেট ইনিশিয়ালাইজ করুন।
  • সব ডেটের ওপর ইটারেট করুন এবং ইয়ার আনঅর্ডার্ড সেটে যোগ করুন যাতে ইউনিক ইয়ার পাওয়া যায়।
  • সেটের সাইজ প্রিন্ট করুন।

উদাহরণ

কোডটি দেখি।

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

int uniqueYearsCount(string text) {
    // regex
    regex date_regex("[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}");
    smatch matching_date;
    // set to store unique dates
    unordered_set<string> dates;
    // finding all 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

ডেট আলাদা ফরম্যাটে থাকতে পারে। যদি আলাদা ফরম্যাটে ডেট পাওয়া যায়, তবে regex যথাযথভাবে আপডেট করুন।

উপসংহার

টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।

  1. C++ প্রোগ্রাম: (0,0) থেকে (x,y) যেতে ন্যূনতম ধাপ গণনা

  2. C++ প্রোগ্রাম: Nth নন-ফিবোনাচি সংখ্যা বের করা

  3. C++ প্রোগ্রাম: Nth ইভেন ফিবোনাচি সংখ্যা বের করা

  4. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা