C#を使用してバックトラックすることにより、文字列のすべての順列を見つける方法は?
最初の位置にある文字を見つけて、残りの文字を最初の文字と交換します。 ABCの場合と同様に、最初の反復では、AをA、B、およびCとそれぞれ交換することにより、ABC、BAC、およびCBAの3つの文字列が形成されます。 2番目の文字Bを修正するなど、残りの文字についても手順を繰り返します。ここでもう一度スワップして、前の位置に戻ります。 ABCから、Bを再度修正してABCを形成し、前の位置に戻ってBをCと交換しました。これで、ABCとACBを取得しました。
例
using System; namespace ConsoleApplication{ public class BackTracking{ public void StringPermutation(string word, int start, int end){ if (start == end){ Console.WriteLine(word); } else{ for (int i = start; i <= end; i++){ Swap(ref word, start, i); StringPermutation(word, start + 1, end); Swap(ref word, start, i); } } } private void Swap(ref string word, int start, int end){ char[] arr = word.ToCharArray(); char temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; word = new string(arr); } } class Program{ static void Main(string[] args){ BackTracking b = new BackTracking(); b.StringPermutation("ABC", 0, 2); } } }
出力
ABC ACB BAC BCA CBA CAB
-
Python Regexを使用して、特定の文字列内の「1(0+)1」のすべてのパターンを検索します
このチュートリアルでは、正規表現を使用して、文字列内の1(0 + 1)のすべての出現を検出するプログラムを作成します。 。 Pythonには、正規表現を操作するのに役立つreモジュールがあります。 1つのサンプルケースを見てみましょう。 Input: string = "Sample 1(0+)1 string with 1(0+)1 unnecessary patterns 1(0+)1" Output: Total number of pattern maches are 3 ['1(0+)1', '1(0+)1', '1(0+
-
Pythonの正規表現を使用して、文字列内のすべての数値を検索します
テキストから数字のみを抽出することは、Pythonデータ分析で非常に一般的な要件です。これは、Python正規表現ライブラリを使用して簡単に実行できます。このライブラリは、サブストリングとして抽出できる数字のパターンを定義するのに役立ちます。 例 以下の例では、reモジュールの関数findall()を使用しています。これらの関数のパラメーターは、抽出するパターンと抽出する文字列です。以下の例では、小数点や負の符号ではなく、数字のみが取得されることに注意してください。 import re str=input("Enter a String with numbers: \n"