https://blog.youkuaiyun.com/weixin_43180675/article/details/106734077
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
Stack<Character> stack = new Stack<>();
StringBuffer sb = new StringBuffer("");
int bracket = 0;
for(int i =0;i<s.length();i++){
char c = s.charAt(i);
if(c=='('){
bracket++;
}else if(c==')'){
bracket--;
}else if(bracket==0&&c=='<'){
//stack.pop();
sb.deleteCharAt(sb.length()-1);
}else if(bracket==0){
sb.append(c);
}else{
}
}
System.out.println(sb.toString());
}
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] agreeArr = new int[num];
for(int i = 0;i<num;i++){
agreeArr[i]=sc.nextInt();
}
int[] dp = new int[num+1];
int[] agreeNum = new int[num+1];
dp[1] = agreeArr[0];
agreeNum[1]=1;
for(int i = 2;i<=num;i++){
dp[i] = Math.max(dp[i-1],dp[i-2]+agreeArr[i-1]);
if(dp[i]==dp[i-1]){
agreeNum[i]=agreeNum[i-1];
}else{
agreeNum[i]=agreeNum[i-2]+1;
}
}
System.out.println(dp[num]+" "+agreeNum[num]);
}
}
package com.example.demo;
import java.util.Scanner;
/**
* Created by xuliwei on 2020/6/25.
*/
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int sum = sc.nextInt();
String str = sc.next();
String[] split = str.substring(1,str.length()-1).split(",");
int[] prices = new int[split.length];
for(int i = 0;i<prices.length;i++){
prices[i]=Integer.parseInt(split[i]);
}
int[][] dp = new int[prices.length+1][sum+1];
//初始状态,在金额为零的情况下,只能选择什么都不选这一种组合
for(int i = 0;i < dp.length;i++){
dp[i][0] = 1;
}
for(int i = 1;i<prices.length+1;i++){
for(int j = 1;j<sum+1;j++){
if(prices[i-1]<=j){//如果当前的金额小于总金额,可以选择选也可以选择不选
dp[i][j]=dp[i-1][j]+dp[i][j-prices[i-1]];
}else{
dp[i][j]=dp[i-1][j];
}
}
}
System.out.println(dp[prices.length][sum]);
}
}