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

指定された文字列がC#を使用して同型であるかどうかを確認するにはどうすればよいですか?


XとYの2つの文字列は、X内の各文字のすべての出現箇所を別の文字に置き換えて、Yを取得できる場合、またはその逆の場合、同形と呼ばれます。たとえば、文字列ACABおよびXCXYについて考えてみます。文字の順序を維持しながら、出現するすべての文字を別の文字に置き換える必要があります。 2人のキャラクターが同じキャラクターにマップすることはできませんが、キャラクターはそれ自体にマップできます。

例1

入力 − s ="egg"、t ="add"

出力 − true

例2

入力 − s ="foo"、t ="bar"

出力 − false

時間計算量 − O(N)

スペースの複雑さ − O(N)

コード
public class Arrays{
   public bool IsStringIsomorphic(string s, string t){
      if (s == null || t == null){
         return false;
      }
      int[] chars1 = new int[128];
      int[] chars2 = new int[128];
      for (int i = 0; i < s.Length; i++){
         if (chars1[s[i]] != chars2[t[i]]){
            return false;
         }
         else{
            chars1[s[i]] = i + 1;
            chars2[t[i]] = i + 1;
         }
      }
      return true;
   }
}

static void Main(string[] args){
   Console.WriteLine(s.IsStringIsomorphic("add", "egg"));
}

出力

True

  1. Pythonの特定の条件に従って、2つの文字列が同等であるかどうかを確認します

    同じサイズの2つの文字列sとtがあるとします。 sとtが等しいかどうかを確認する必要があります。チェックする条件はいくつかあります: どちらも同じです。または、 sを同じサイズの2つの連続する部分文字列に分割し、その部分文字列がs1とs2であり、同じようにtをt1とt2に分割する場合、次のいずれかが有効である必要があります。 s1は再帰的にt1と同等であり、s2は再帰的にt2と同等です s1は再帰的にt2と同等であり、s2は再帰的にt1と同等です したがって、入力がs =ppqp t =pqppの場合、出力は、sとtを2つの部分に分割するかのようにTrueになります。s1=pp

  2. 与えられた数がPythonでいとこ素数であるかどうかを確認します

    整数のペアがあるとします。それらがいとこ素数であるかどうかを確認する必要があります。両方が素数であり、4だけ異なる場合、2つの数はいとこ素数であると言われます。 したがって、入力がペア=(19,23)のようである場合、これらは2つの素数であり、それらの差は4であるため、いとこ素数であるため、出力はTrueになります。 これを解決するには、次の手順に従います- 2つの要素の差が4でない場合、 Falseを返す 両方が素数の場合はtrueを返し、そうでない場合はfalseを返します 理解を深めるために、次の実装を見てみましょう- サンプルコード def isPrime(num):