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

C++-এ একটি স্ট্রিং অন্যটিকে ব্রেক করতে পারে কিনা চেক


দুটি সমান দৈর্ঘ্যের স্ট্রিং s1 ও s2 দেওয়া আছে। চেক করতে হবে s1 এর কোনো পারমুটেশন কি s2 এর কোনো পারমুটেশনকে ব্রেক করতে পারে (অথবা উল্টো)। স্ট্রিং a স্ট্রিং b কে ব্রেক করতে পারে যদি সব i এর জন্য a[i] >= b[i] (অ্যালফাবেটিক্যালি)।

ইনপুট: s1 = "abc", s2 = "xya" → আউটপুট: true ("ayx" ব্রেক করে "abc" কে)

সমাধানের ধাপগুলো:

  • দুটি স্ট্রিং সর্ট করব

  • check(s1, s2): সব i এর জন্য s2[i] >= s1[i] কিনা চেক করব

  • check(s2, s1) ও check(s1, s2) যেকোনো একটা true হলে রিটার্ন true

উদাহরণ

নিচের কোডটি দেখুন −

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    bool check(string& s1, string& s2) {
        for (int i = 0; i < s1.size(); i++) {
            if (s2[i] < s1[i])
                return false;
        }
        return true;
    }
    bool checkIfCanBreak(string s1, string s2) {
        sort(s1.begin(), s1.end());
        sort(s2.begin(), s2.end());
        bool f3 = check(s2, s1);
        bool f4 = check(s1, s2);
        return f3 || f4;
    }
};

int main() {
    Solution ob;
    cout << (ob.checkIfCanBreak("abc", "xya"));
}

ইনপুট

"abc", "xya"

আউটপুট

1

  1. সুইফটে একটি স্ট্রিং অন্য স্ট্রিং কন্টেইন (Contains) করে কিনা চেক করার পদ্ধতি

  2. C++-এ একটি বাইনারি ট্রি অন্য বাইনারি ট্রির সাবট্রি কিনা তা যাচাই করা

  3. পাইথনে যাচাই করুন স্ট্রিং রিপিট করে অন্য স্ট্রিং বানানো যায় কিনা

  4. পাইথনে যাচাই করুন স্ট্রিং অন্য স্ট্রিং-কে ২ প্লেস রোটেট করে পাওয়া যায় কিনা