public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//输入,不用考虑去掉多余的行,题目有点迷惑
List<String> ss1=new ArrayList<>();
while (true){
String s=sc.nextLine();
if(s.equals("EOF"))
break;
ss1.add(s);
}
List<String> ss2=new ArrayList<>();
while (true){
String s=sc.nextLine();
if(s.equals("EOF"))
break;
ss2.add(s);
}
int time=sc.nextInt();
int ans=0;//对的字符数量
for (int i = 0; i < Math.min(ss1.size(),ss2.size()); i++) {
char[] tmp1=ss1.get(i).toCharArray();
char[] tmp2=ss2.get(i).toCharArray();
//用栈存储有效字符,遇到'<'去掉栈顶
Deque<Character> stk1=new ArrayDeque<>();
Deque<Character> stk2=new ArrayDeque<>();
for (int j = 0,k=0; j <tmp1.length||k<tmp2.length ; j++,k++) {
if(j<tmp1.length){
if(tmp1[j]=='<'){
if(!stk1.isEmpty())
stk1.pollLast();
} else stk1.offer(tmp1[j]);
}
if(k<tmp2.length){
if(tmp2[k]=='<'){
if(!stk2.isEmpty())
stk2.pollLast();
} else stk2.offer(tmp2[k]);
}
}
//从头开始比较
while (!stk1.isEmpty()&&!stk2.isEmpty()){
if(stk1.poll()==stk2.poll())
ans++;
}
}//四舍五入
System.out.println((int)Math.round((double) ans/time*60));
}
栈——洛谷p5587
最新推荐文章于 2025-08-09 17:01:50 发布