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

C#を使用してバックトラックすることにより、モバイルでキーパッド値のすべての組み合わせを取得するにはどうすればよいですか?


問題は、より小さく単純な「サブ問題」に分解できます。さらに、さらに単純でより小さなサブ問題に分割できます。すべての桁を1つずつ取得し、任意の桁から到達可能なすべてのn桁をカウントし、マップを使用して、すべての桁から到達可能な桁のマッピングを格納します。桁がn桁になったら、カウントを更新します。

using System;
using System.Collections.Generic;
namespace ConsoleApplication{
   public class BackTracking{
      private string GetKeyPadValueBasedOnInput(string digit){
         Dictionary keypad = new Dictionary();
         keypad.Add("2", "abc");
         keypad.Add("3", "def");
         keypad.Add("4", "ghi");
         keypad.Add("5", "jkl");
         keypad.Add("6", "mno");
         keypad.Add("7", "pqrs");
         keypad.Add("8", "tuv");
         keypad.Add("9", "wxyz");
         return keypad.GetValueOrDefault(digit);
      }
      public void FindSequence(string currentList, string digits, List output){
         if (digits.Length == 0){
            output.Add(currentList);
            return;
         }
         else{
            string digit = digits.Substring(0, 1);
            string letters = GetKeyPadValueBasedOnInput(digit);
            for (int i = 0; i < letters.Length; i++){
               char letter = GetCHarFromString(letters, i);
               FindSequence(currentList + letter, digits.Substring(1), output);
            }
         }
      }
      private char GetCHarFromString(string letters, int value){
         char[] charArr = letters.ToCharArray();
         return charArr[value];
      }
   }
   class Program{
      static void Main(string[] args){
         BackTracking b = new BackTracking();
         List<string> output = new List<string>();
         b.FindSequence("", "34", output);
         foreach (var item in output){
            Console.WriteLine(item);
         }
      }
   }
}

出力

dg
dh
di
eg
eh
ei
fg
fh
fi

  1. Tkinterを使用してエントリウィジェットのボタンの値を取得するにはどうすればよいですか?

    ボタンは、Tkinterアプリケーションで非常に便利なウィジェットです。エントリウィジェットに値を挿入する関数を定義することにより、エントリウィジェットの任意のボタンの値を取得できます。値を取得するには、最初に、エントリウィジェットに表示される特定の値を追加するためのコマンドを持つボタンを定義する必要があります。 エントリウィジェットを更新するには、 delete(0、END)を使用して以前の値を削除できます。 メソッド。 例 # Import the required libraries from tkinter import * from tkinter import ttk # Cr

  2. Redis HVALS –ハッシュ値に含まれるすべての値を取得する方法

    このチュートリアルでは、キーに格納されているハッシュ値に含まれるすべての値を取得する方法について学習します。このために、Redis HVALSを使用します コマンド。 HVALSコマンド このコマンドは、指定されたキーに格納されているハッシュ値に含まれるすべてのフィールドの値を返します。キーが存在しない場合は空のリストが返され、キーは存在するがキーに格納されている値がハッシュデータ型ではない場合はエラーが返されます。 RedisHVALSコマンドの構文は次のとおりです。- 構文:- redis host:post> HVALS <keyname> 出力:- -