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

C++-এ স্ট্রিং-এ সবচেয়ে লম্বা সংখ্যা খুঁজুন

একটি স্ট্রিং (অক্ষর ও সংখ্যা মিশ্রিত) দেওয়া আছে। স্ট্রিং-এ থাকা সবচেয়ে লম্বা সংখ্যা (সর্বোচ্চ ডিজিট সিকোয়েন্স) বের করতে হবে।

উদাহরণ

ইনপুট: "code001tutorials34124point"

আউটপুট: 34124

ব্যাখ্যা: স্ট্রিংয়ের সংখ্যাগুলো: 001 (দৈর্ঘ্য ৩), 34124 (দৈর্ঘ্য ৫) → সবচেয়ে লম্বা 34124।

অ্যালগরিদম

  1. স্ট্রিং ট্রাভার্স করুন।
  2. যখন ডিজিট পাওয়া যায়, কাউন্ট শুরু করুন (isdigit())।
  3. নন-ডিজিট পাওয়া যাওয়া পর্যন্ত কাউন্ট চালিয়ে যান।
  4. প্রতিটি সংখ্যা সিকোয়েন্সের জন্য দৈর্ঘ্য এবং স্টার্ট পজিশন স্টোর করুন।
  5. সর্বোচ্চ দৈর্ঘ্যের সিকোয়েন্সটি রিটার্ন করুন (substr)।

C++ প্রোগ্রাম

#include <iostream>
#include <cctype>
using namespace std;

string findLongestNumber(string str, int l) {
    int count = 0, max = 0, maxLenPos = -1, maxLen = 0;
    for (int i = 0; i < l; i++) {
        count = 0;
        maxLen = 0;
        if (isdigit(str[i]))
            maxLenPos = i;
        while (i < l && isdigit(str[i])) {
            count++; i++; maxLen++;
        }
        if (count > max) {
            max = count;
        } else {
            maxLenPos = maxLenPos; // unchanged
            maxLen = maxLen;       // unchanged
        }
    }
    return str.substr(maxLenPos, maxLen);
}

int main() {
    string str = "code001tutorials34124point";
    int l = str.length();
    cout << "The longest length number in string is " << findLongestNumber(str, l);
    return 0;
}

আউটপুট

The longest length number in string is 34124

ব্যাখ্যা

  • isdigit() <cctype>-এ আছে।
  • while লুপ দিয়ে সক্রিয় ডিজিট সিকোয়েন্স স্কিপ করা হয়।
  • maxLenPos এবং maxLen দিয়ে বেস্ট সিকোয়েন্স ট্র্যাক করা হয়।
  • substr(pos, len) দিয়ে সাবস্ট্রিং এক্সট্র্যাক্ট।

কমপ্লেক্সিটি

  • টাইম: O(n) — স্ট্রিং একবার ট্রাভার্স।
  • স্পেস: O(1) এক্সট্রা (আউটপুট বাদে)।

এজ কেস

  • স্ট্রিং-এ কোনো ডিজিট নেই → খালি স্ট্রিং রিটার্ন।
  • একই দৈর্ঘ্যের একাধিক সংখ্যা হলে প্রথমটিই রিটার্ন হবে (লজিক সামঞ্জস্য করতে পারেন)।
  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. C++-এ স্ট্রিংর দৈর্ঘ্য বের করার ৫টি ভিন্ন পদ্ধতি

  3. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা

  4. স্ট্রিংয়ের দৈর্ঘ্য (Length) বের করার C++ প্রোগ্রাম