有效括号序列
给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]“不合法。
解题思路:
可以使用字符替换,就是将匹配好的字符替换为空的
s=s.replace(”()",""); 这行代码的意思就是将()换成空的,
这样最后看栈是不是为空,不为空就说明顺序不正确。
代码如下:
boolean flag = true;
while(flag){
int len = s.length();
s=s.replace("()","");
s=s.replace("[]","");
s=s.replace("{}","");
if(len == s.length()){
flag=false;
}
}
return s.length() == 0;
最小的K个数
解题思路:
我使用的是先排序,就是说我先将这些元素排好序,然后在从里面取得最小的k个数字
public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
ArrayList<Integer> res = new ArrayList<>(k);
//根据题意要求,如果K>数组的长度,返回一个空的数组
if (k > input.length)
return res;
//先排序,然后选择前k个即可
Arrays.sort(input);
for (int i = 0; i < k; ++i) {
res.add(input[i]);
}
return res;
}