C#
 Computer >> コンピューター >  >> プログラミング >> C#

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

  1. 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+

  2. Pythonの正規表現を使用して、文字列内のすべての数値を検索します

    テキストから数字のみを抽出することは、Pythonデータ分析で非常に一般的な要件です。これは、Python正規表現ライブラリを使用して簡単に実行できます。このライブラリは、サブストリングとして抽出できる数字のパターンを定義するのに役立ちます。 例 以下の例では、reモジュールの関数findall()を使用しています。これらの関数のパラメーターは、抽出するパターンと抽出する文字列です。以下の例では、小数点や負の符号ではなく、数字のみが取得されることに注意してください。 import re str=input("Enter a String with numbers: \n"