242. 有效的字母异位词
我一开始的代码
public static boolean isAnagram(String s, String t) {
char[] c1 = s.toCharArray();
char[] c2 = t.toCharArray();
if(c1.length != c2.length) {
return false;
}
int[] m1 = new int[128];
int[] m2 = new int[128];
for(int i = 0; i < c1.length; ++i) {
m1[c1[i]]++;
m2[c2[i]]++;
}
for(char c : c1) {
if(m1[c] != m2[c]){
return false;
}
}
return true;
}
上面👆这个方法是用了数组作为一个特殊的哈希表来实现的。
20. 有效的括号
public boolean isValid(String s) {
char[] cs = s.toCharArray();
Stack<Character> stack = new Stack<>();
for(char c : cs) {
if(c == '(') {
stack.push(')');
} else if(c == '[') {
stack.push(']');
} else if(c == '{') {
stack.push('}');
} else {
// 这个判断条件容易遗漏stack.empty(),
// 当上面三个条件都不符合,且栈为空时也返回为false
if(stack.empty() || stack.pop() != c) {
return false;
}
}
}
return stack.isEmpty();
}
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!