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

C++-এ সংখ্যায় k ব্রেকপয়েন্ট বসিয়ে সর্বোচ্চ সেগমেন্ট ভ্যালু


এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া আছে যা একটি বড় সংখ্যা নির্দেশ করে এবং একটি INTEGER k যা ব্রেকপয়েন্টের সংখ্যা নির্দেশ করে। আমাদের কাজ হল একটি প্রোগ্রাম তৈরি করা যা একটি সংখ্যায় L ব্রেকপয়েন্ট বসিয়ে সর্বোচ্চ সেগমেন্ট ভ্যালু বের করবে।

এখানে, আমাদের সেই সর্বোচ্চ সংখ্যা বের করতে হবে যা k ব্রেকপয়েন্ট বসিয়ে স্ট্রিং দ্বারা দেওয়া সংখ্যাতেই তৈরি করা যায়।

একটি উদাহরণ নিয়ে সমস্যাটি বুঝতে চাই

ইনপুট − string = “45972”, k = 3

আউটপুট − 97

ব্যাখ্যা −

সম্ভব সব সংখ্যা: 45    9    7    2 4    59    7    2 4    5    97    2 4    5    9    72 এই সব থেকে 97 সবচেয়ে বড় সংখ্যা।

এই সমস্যা সমাধানের জন্য, আমরা স্লাইডিং উইন্ডো টেকনিক ব্যবহার করব। এখানে, উইন্ডো সাইজ হবে (স্ট্রিংয়ের দৈর্ঘ্য - k) অর্থাৎ সর্বোচ্চ সংখ্যাটি এই সাইজের হবে। আমরা স্লাইডিং উইন্ডো টেকনিক ব্যবহার করে এই সাইজের সব সম্ভাব্য সংখ্যা থেকে সর্বোচ্চ সংখ্যা বের করব।

উদাহরণ

একটি সংখ্যায় K ব্রেকপয়েন্ট বসিয়ে সর্বোচ্চ সেগমেন্ট ভ্যালু বের করার প্রোগ্রাম −

 

#include <bits/stdc++.h> using namespace std; int findMaxSegmentWithKbreaks(string &s, int k) {    int window = s.length() - k;    int MaxNumber = 0;    for (int i=0; i<window; i++)    MaxNumber = MaxNumber * 10 + (s[i] - '0');    int slWindow = pow(10, window-1);    int value = MaxNumber;    for (int i = 1; i <= (s.length() - window); i++) {       value = value - (s[i-1]- '0')*slWindow;       value = value*10 + (s[i+window-1]- '0');       MaxNumber = max(MaxNumber, value);    }    return MaxNumber; } int main() {    string s = "45972";    int k = 3;    cout<<"Maximum segment value after putting "<<k<<" break points in a number = "<<findMaxSegmentWithKbreaks(s, k);    return 0; }

আউটপুট

Maximum segment value after putting 3 breakpoints in a number = 97

  1. C++ বাইনারি নাম্বার থেকে এক বিট রিমুভ করে সর্বোচ্চ মান পান

  2. C++ দিয়ে সর্বোচ্চ গড় মান barne পথ বের করা

  3. C++ দিয়ে সর্বোচ্চ বেণ্ড (Bends) Barney পথের দৈর্ঘ্য বের করা

  4. C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা