1383: *【中级组】学生领取点心
Description
学校下午供应点心 每个学生可以领取一份蛋糕或者饼干,分别用数字 0和 1来表示。n 个学生站在一个队列里,假如每个学生要么喜欢蛋糕要么喜欢饼干。餐厅里点心的数量与学生的数量相同。所有点心都放在一个 栈 里,每一轮:
- 如果队列最前面的学生喜欢栈顶的点心,那么会 拿走它 并离开队列。
- 否则,这名学生会 放弃这份点心, 并回到队列的尾部。
示例:
输入:n=4 student = [1100] snack = [0101]
输出:0
解释:- 最前面的学生放弃最顶上的点心,并回到队列的末尾,学生队列变为 student = [1001]。
- 最前面的学生放弃最顶上的点心,并回到队列的末尾,学生队列变为 student = [0011]。
- 最前面的学生拿走最顶上的点心,剩余学生队列为 student = [011],点心栈为 snack = [101]。
- 最前面的学生放弃最顶上的点心,并回到队列的末尾,学生队列变为 student = [110]。
- 最前面的学生拿走最顶上的点心,剩余学生队列为 student = [10],点心栈为 snack = [01]。
- 最前面的学生放弃最顶上的点心,并回到队列的末尾,学生队列变为 student = [01]。
- 最前面的学生拿走最顶上的点心,剩余学生队列为 student = [1],点心栈为 snack= [1]。
- 最前面的学生拿走最顶上的点心,剩余学生队列为 student = [],点心栈为 snack= []。所以所有学生都有点心吃。
Input
Output
Sample Input Copy
6
1 0 1 0 0 1
1 1 1 1 0 0
Sample Output Copy
3
HINT
提示:
1 <= n <= 1000
student[i] 要么是 0 ,要么是 1 。
snack[i] 要么是 0 ,要么是 1 。