如何使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP