剑指Offer9--使用双栈模拟队列 队列Queue是具有FIFO(First in First out)特性的数据结构,栈Stack是具有LIFO(后进先出)特性的数据结构.下面提供一种思路使用双栈来模拟队列. 1. 思路--为何需要用两个栈? 很显然一个普通的栈是无法替代队列的,这是因为先进栈的元素总是后出栈. 如果输入序列是123(假设push和pop不交替进行),输出序列仅为321,与队列恰好是反过来的.那么,我们产生了一个思路,就像是"负负得正"一样,如果增加一个栈来接收上一…
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题代码 import java.util.Stack; public class Solution{ Stack<Integer> in = new Stack<>(); Stack<Integer> out = new Stack<>(); public void push(int node){ in.push(node); } public int pop(…
class Solution: def __init__(self): self.stackpush=[] self.stackpop=[] def push(self, node): # write code here self.stackpush.append(node) def pop(self): # return xx if len(self.stackpop)==0: while len(self.stackpush) is not 0: self.stackpop.append(s…
1.面试题43. 1-n整数中1出现的次数 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 这个题目的核心思想是考虑:每个位是任意数字时,可以包含多少个这个位为1的数字 分了三种情况 class Solution { public int countDigitOne(int n) { //digit表示位因子,就是10.100.1000... long digit=1; int cou…