Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。
现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。
输入描述:
输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000),表示请求的数量。
紧接着n行,每行包含一个请求编号id(A、B、C……、Z)和操作(connect或disconnect)。
输出描述:
对应每一组数据,输出连接池最多需要创建多少个连接。
- import java.util.*;
- public class Main{
- public static void main(String args[]){
- // 循环处理每一组测试用例
- Scanner sc = new Scanner(System.in);
- while(sc.hasNext()){
- int n = sc.nextInt();
- int max = 0;
- // 每一行有n条记录
- Set
s = new HashSet<>(); - while(0 != n){
- String id,record;
- id = sc.next();
- record = sc.next();
- // 如果是该记录是链接,将其id插入到Set中,否则删除
- if(record.equals("connect"))
- s.add(id);
- else
- s.remove(id);
- // 获取当前链接的最大值
- max = Math.max(max, s.size());
- n--;
- }
- System.out.println(max);
- }
- }
- }
