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

C++-এ বাইনারি স্ট্রিংকে অল্টারনেট করতে হলে ন্যূনতম ফ্লিপ সংখ্যা


একটি বাইনারি স্ট্রিং দেওয়া আছে। এটিকে অল্টারনেটিং স্ট্রিং (০১০১... বা ১০১০...) বানাতে ন্যূনতম কতবার ফ্লিপ করতে হবে, তা বের করতে হবে।

উদাহরণ: binary="10011" হলে আউটপুট ২। "10101" বানাতে ২ ফ্লিপ লাগবে।

অ্যালগরিদম

  • দুটি প্যাটার্ন চেক করুন: '0' দিয়ে শুরু এবং '1' দিয়ে শুরু
  • প্রতিটি প্যাটার্নের জন্য ফ্লিপ কাউন্ট করুন
  • ন্যূনতম ফ্লিপ কাউন্ট রিটার্ন করুন

ইমপ্লিমেন্টেশন

#include <bits/stdc++.h> using namespace std; char flip(char binaryDigit) { return binaryDigit == '0' ? '1' : '0'; } int getFlipCountToAlternateString(string binary, char expected) {    int flipCount = 0;    for (int i = 0; i < binary.length(); i++) {       if (binary[i] != expected) flipCount++;       expected = flip(expected);    }    return flipCount; } int main() {    string binary = "10011";    cout << min(getFlipCountToAlternateString(binary, '0'), getFlipCountToAlternateString(binary, '1')) << endl;    return 0; }

আউটপুট

2

  1. সি++-এ বাইনারি ম্যাট্রিক্সকে শূন্য ম্যাট্রিক্সে রূপান্তর করার জন্য ন্যূনতম ফ্লিপ সংখ্যা

  2. দেওয়া সংখ্যার বাইনারি রিপ্রেজেন্টেশন C++-এ

  3. C++-এ একটি সংখ্যার বাইনারিতে অল্টারনেট প্যাটার্ন আছে কিনা তা যাচাই করা (সেট ১)

  4. C++-এ k সেট বিটস সহ একটি নম্বরকে ম্যাক্সিমাইজ করতে ন্যূনতম ফ্লিপ বের করা