小红书2020校招测试开发&后端笔试题卷一

https://blog.csdn.net/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]);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值