文字列がC++で別の文字列を壊す可能性があるかどうかを確認する
サイズが同じ2つの文字列s1とs2があるとします。文字列s1の順列が文字列s2の順列を壊すことができるかどうか、またはその逆かどうかを確認する必要があります。 0からn-1の範囲のすべてのiに対してx[i]>=y [i](アルファベット順)の場合、文字列aは文字列bを壊す可能性があります。
したがって、入力がs1=abcおよびs2=xyaのような場合、出力はtrueになります。これは、「ayx」がs2の順列であり、s1="abc"の順列である文字列「abc」に分割される可能性があるためです。
これを解決するには、次の手順に従います-
-
関数check()を定義します。これにはs1、s2、
が必要です。 -
初期化i:=0の場合、i
-
s2 [i]
-
falseを返す
-
-
-
trueを返す
-
メインの方法から、次のようにします-
-
配列s1を並べ替える
-
配列s2を並べ替える
-
f3:=check(s2、s1)
-
f4:=check(s1、s2)
-
f3がtrueまたはf4がtrueのいずれか、それ以外の場合はfalseを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; } }; main(){ Solution ob; cout << (ob.checkIfCanBreak("abc", "xya")); }
入力
"abc", "xya"
出力
1
-
文字列にSwiftの別の文字列が含まれているかどうかを確認します
文字列に別の文字列がswiftで含まれているかどうかを確認するには、2つの異なる文字列が必要です。別の文字列で構成されているかどうかを確認する必要がある1つの文字列。 チェックしたい文字列が「point」で、文字列全体が「TutorialsPoint」で、別の文字列が「onetwothree」であるとします。遊び場でこれら両方の文字列を確認しましょう。 これは、以下に示す2つの方法で実行できます。 3つの異なる文字列を作成することから始めましょう。 var CompleteStr1 = "Tutorials point" var completeStr2 = "
-
二分木がC++の別の二分木のサブツリーであるかどうかを確認します
2つの二分木があるとします。小さい方のツリーが別の二分木のサブツリーであるかどうかを確認する必要があります。これらの2本の木が与えられていると考えてください。 2本の木があります。 2番目のツリーは、最初のツリーのサブツリーです。このプロパティを確認するために、ポストオーダー方式でツリーをトラバースします。このノードをルートとするサブツリーが2番目のツリーと同一である場合、それはサブツリーです。 例 #include <bits/stdc++.h> using namespace std; class node { public: &