এই সমস্যায়, আমাদের একটি নম্বর দেওয়া হয়েছে। এবং আমাদের সমস্ত 3 সংখ্যার পুনরাবৃত্তি সংখ্যা প্রিন্ট করতে হবে।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
Input: 98769876598765 Output: 987: 3 times 876: 3 times 765: 2 times
এই সমস্যাটি সমাধান করার জন্য, আমরা স্ট্রিং সংরক্ষণ করা বড় সংখ্যা ব্যবহার করব। সংখ্যার অঙ্কগুলি অক্ষর হিসাবে গণনা করা হয়। এখন, আমরা প্রথম তিনটি সংখ্যা পরীক্ষা করব এবং তারপর 3য় সূচক থেকে শুরু করে শেষ পর্যন্ত একটি নতুন সংখ্যা পাব। এর পরে, আমরা পরবর্তী 3 ডিজিটের সংখ্যাগুলি তার ফ্রিকোয়েন্সি গণনা করার জন্য পরীক্ষা করব। শেষ পর্যন্ত, 1-এর বেশি ফ্রিকোয়েন্সি আছে এমন সমস্ত 3 সংখ্যার সংখ্যাগুলি প্রিন্ট করুন৷
উদাহরণ
নিচের কোডটি আমাদের সমাধান বাস্তবায়ন করবে,
#include <bits/stdc++.h> using namespace std; void printRepeatingNumber(string s) { int i = 0, j = 0, val = 0; map <int, int> threeDigitNumber; val = (s[0] - '0') * 100 + (s[1] - '0') * 10 + (s[2] - '0'); threeDigitNumber[val] = 1; for (i = 3; i < s.length(); i++) { val = (val % 100) * 10 + s[i] - '0'; if (threeDigitNumber.find(val) != threeDigitNumber.end()) { threeDigitNumber[val] = threeDigitNumber[val] + 1; } else { threeDigitNumber[val] = 1; } } for (auto number : threeDigitNumber) { int key = number.first; int value = number.second; if (value > 1) cout<<key<<": "<<value<<" times\n"; } } int main() { string num = "98769876598765"; cout<<"All 3 digit repreating numbers are :\n"; printRepeatingNumber(num); }
আউটপুট
All 3 digit repeating numbers are − 765: 2 times 876: 3 times 987: 3 times