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<String> 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);
}
}
}