এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা দেওয়া স্ট্রিং-এ ডিস্টিংক্ট ইয়ার বের করবে। কিছু উদাহরণ দেখি। আমরা ধরে নিচ্ছি ডেট ফরম্যাট হলো 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 যথাযথভাবে আপডেট করুন।
উপসংহার
টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।