1. 232 Implement Queue using Stacks
1.1 问题描写叙述
  使用栈模拟实现队列。模拟实现例如以下操作: 
  
- push(x). 将元素x放入队尾。
- pop(). 移除队首元素。
- peek(). 获取队首元素。
- empty(). 推断队列是否为空。
注意:仅仅能使用栈的标准操作,push,pop,size和empty函数。
1.2 方法与思路
本题和用队列实现栈思路一样,设两个辅助栈stk1和stk2。
 
   push(x): 将x入栈stk1. 
   pop(): 依次将stk1中的元素pop到stk2中。仅仅留最后一个pop掉。然后再将stk2中的元素pop到stk1中。 
   peek(): 和pop操作相似,仅仅只是最后一个元素不是pop,而是取值返回。 
   empty(): 直接推断stk1是否为空就可以。
class Queue {
    stack<int> stk1,stk2;
public:
    // Push element x to the back of queue.
    void push(int x) {
        stk1.push(x);
    }
    // Removes the element from in front of queue.
    void pop(void) {
        while(stk1.size() > 1)
        {
            stk2.push(stk1.top());
            stk1.pop();
        }
        if(stk1.size() == 1)
            stk1.pop();
        while(!stk2.empty())
            stk1.push(stk2.top()),stk2.pop();
    }
    // Get the front element.
    int peek(void) {
        int re;
        while(stk1.size() > 1)
        {
            stk2.push(stk1.top());
            stk1.pop();
        }
        if(stk1.size() == 1)
            re = stk1.top();
        while(!stk2.empty())
            stk1.push(stk2.top()),stk2.pop();
        return re;
    }
    // Return whether the queue is empty.
    bool empty(void) {
        return stk1.empty();
    }
};2. 231 Power of Two
2.1 问题描写叙述
推断一个整数是不是2的幂次方。
2.2 思路与方法
  超简单的题目,题目给出的n最大为int的最大值,那么仅仅须要遍历i从1到30依次计算2的i次方是不是数n就可以。 
  
class Solution {
public:
    bool isPowerOfTwo(int n) {
        for(int i=0; i < 31; i++)
        {
            if(pow(2,(double)i) == n) return true;
        }
        return false;
    }
};