STL を使用して、指定された文字列の完全な置換を C++ で実装する

王林
リリース: 2023-09-01 23:33:06
転載
813 人が閲覧しました

STL を使用して、指定された文字列の完全な置換を C++ で実装する

与えられた文字列の文字を任意の形式に並べ替えると、文字列の配列が形成されます。たとえば、このチュートリアルでは、C の標準テンプレート ライブラリを使用して、指定された文字列のすべての順列を出力する方法について説明します

Input : s = “ADT” Output : “ADT”, “ATD”, “DAT”, “DTA”, “TAD”, “TDA” Explanation : In the given output as you can see all the string are made up of same three character present in our string and are just rearranged thus they fit in the definition of a permutation of a string now there is one more thing to note these are all the permutations possible of string s.
ログイン後にコピー

指定された文字列のすべての順列を出力するには 2 つの方法があります

Rotate ()

最初に使用する方法は、回転方法を使用することです。この方法では、文字列を回転するために使用される STL の回転関数を使用し、再帰を使用して配置を出力します。

Example

上記のメソッドの C コード

#include using namespace std; void permutations(string s, string ans){ if(s.size() == 0) { // when our string which needs to //be rotated becomes empty then it means //that our permutation is stored in ans cout << ans << "\n"; return ; } for(int i = 0; i < s.size(); i++){ permutations(s.substr(1), ans + s[0]); // we are adding the // first character in our ans // passing all elements from index 1 in our // rotate string for next function. rotate(s.begin(), s.begin()+1, s.end()); //rotating such that our second element becomes first } } int main(){ string s = "ADT"; // given string permutations(s, ""); return 0; }
ログイン後にコピー

Output

ADT ATD DTA DAT TAD TDA
ログイン後にコピー

Next_Permutation

次に、 use STL のもう 1 つの関数、next_Permutation は、名前が示すように、この関数の戻り値は、文字列の次の順列が存在するかどうかです。そうでない場合は false を返します。

ご存知のとおり、この関数は次の順列をチェックするため、考えられるすべての順列を取得するには、まず文字列を辞書順に並べ替える必要があります。

上記のメソッドの C コード

#include using namespace std; int main(){ string s = "ADT"; // given string sort(s.begin(), s.end()); // sorting the string do{ cout << s << "\n"; // printing the permutations }while(next_permutation(s.begin(), s.end())); // till next_permutations returns false return 0; }
ログイン後にコピー

出力

ADT ATD DAT DTA TAD TDA
ログイン後にコピー

上記のプログラムでは、文字列の並べ替えを実行します。次に、 next_permutation 関数を使用して、考えられるすべての順列を出力します。

結論

このチュートリアルでは、C の STL を使用して、指定された文字列の考えられるすべての順列を出力しました。また、問題に対する C プログラムと、いくつかの基本的な STL 関数とその使用法についても学習しました。このチュートリアルがお役に立てば幸いです。

以上がSTL を使用して、指定された文字列の完全な置換を C++ で実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!