如何使用 C# 檢查給定的字串是否同構?


如果字串 X 中每個字元的所有出現都可以用另一個字元替換來獲取 Y,並且反之亦然,則稱兩個字串 X 和 Y 是同構的。例如,考慮字串 ACAB 和 XCXY。必須用另一個字元替換字元的所有出現,同時保持字元的順序。不得將兩個字元對映到同一個字元,但一個字元可以對映到自身。

示例 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

更新日期: 17-8-2021

809 次檢視

開啟 職業

完成課程以獲得認證

開始
廣告
© . All rights reserved.