সমস্যা
একটি স্ট্রিং দেওয়া আছে যাতে 'DD-MM-YYYY' ফরম্যাটে তারিখ আছে। স্ট্রিং থেকে সব ডISTINCT বছর বের করে কাউন্ট করুন।
অ্যালগরিদম
- স্ট্রিং স্ক্যান করুন, ডিজিট ক্যरेক্টার জমা করুন একটি টেম্প স্ট্রিং-এ।
- হাইফেন (
-) পেলে টেম্প ক্লিয়ার করুন। - টেম্পের দৈর্ঘ্য ৪ হলে (বছর পাওয়া গেলে) সেটে ইনসার্ট করুন।
- সেটের সাইজ রিটার্ন করুন।
C++ কোড
#include <bits/stdc++.h>
using namespace std;
int calculateDifferentYears(string str) {
unordered_set<string> years;
string temp = "";
for (char c : str) {
if (isdigit(c)) temp.push_back(c);
if (c == '-') temp.clear();
if (temp.size() == 4) {
years.insert(temp);
temp.clear();
}
}
return years.size();
}
int main() {
string s = "I was born on 22-12-1955. My sister was born on 34-06-2003 and my mother on 23-03-1940.";
cout << calculateDifferentYears(s); // 3
}
আউটপুট
3