33,010
社区成员
发帖
与我相关
我的任务
分享
public static bool Match(char[] arr1, char[] arr2) {
if (arr1.Length != arr2.Length) {
return false;
}
int offset = 0;
int x = 0;
for (int i = 0; i < arr1.Length; ++i) {
offset += (int)arr1[i];
offset -= (int)arr2[i];
x ^= arr1[i] ^ arr2[i];
}
return offset == 0 && x == 0;
}
public static bool CheckMatch(this string s1, string s2) {
if (s1 == null || s2 == null) return false;
if (s1.Length != s2.Length) return false;
int[] check = new int[128];
var len = s1.Length;
foreach (var c in s1) {
check[c]++;
}
foreach (var c in s2) {
check[c]--;
}
return check.Max() == 0 && check.Min() == 0;
}