java这个CTCI的字符串置换解决方案正确吗?
这似乎有效,我找不到其他人有类似的答案。这很简单,我对此表示怀疑
public static boolean permutation(String s, String t) {
if (s.length() != t.length()) return false; // Permutations must be same length
int sum = 0;
for(char c : s.toCharArray())
sum += c - 'a';
for(char c : t.toCharArray())
sum -= c - 'a';
return sum == 0;
}
同时,时间复杂度是O(n),空间复杂度是O(1),对吗
# 1 楼答案
不,你不应该因为总和而做出决定,因为如果你尝试这个
permutation("CTCI", "CCCZ")
会因为相同的总和而得到true
如果你想在
O(N)
中找到一个算法,你可以检查这个