關於棧的幾道面試題目
1. 括號匹配
http://wenku.baidu.com/link?url=ExL5fVcWJJR2x_l5AWK9znXY98YGwLSYo56ZJtju4Ql6dJKvkHWGkBNPcfGLzm57bIQFwQKFt1dRgjE27N8EMfD462UyYtjGo3d_A8WZbna主要解題思想是遇到左括號,入棧;遇到右括號,出棧。當發現需要出棧的元素不匹配的時候,說明括號不能匹配,否則,括號匹配。
2. 表示式計算
http://blog.chinaunix.net/uid-26833883-id-3156975.html主要解題思路是使用兩個棧,一個棧存放運算的資料,一個棧存放運算子,注意需要考慮運算優先順序,以及是否有括號運算。
3. 兩個棧實現佇列,還有兩個佇列實現棧的功能
http://www.cppblog.com/csu-yx-2013/archive/2012/03/11/167673.aspx (先看下面的程式碼,有我的註釋,再看這個連結)http://blog.csdn.net/cfan0801/article/details/7351574 (輔助)
#include <cstdlib>
#include <iostream>
#include <stack>
/*兩個棧實現佇列*/
using namespace std;
template<class T>
struct MyQueue
{
void push(T &t)
{
s1.push(t);
}
T front() // 實現佇列的front功能
{
if(s2.empty())
{
if(s1.size()==0) throw;
while(!s1.empty())
{
s2.push(s1.top()); // 先把棧s1的元素轉移到s2中
s1.pop();
}
}
return s2.top(); // 棧s2的頂部元素,就是棧s1的底部元素,實現了佇列的front功能,即取頭元素
}
void pop()
{
if(s2.empty())
{
while(!s1.empty())
{
s2.push(s1.top()); // 同上
s1.pop();
}
}
if(!s2.empty())
s2.pop(); // pop掉s2的頂部元素,就是pop佇列的頭元素
}
stack<T> s1;
stack<T> s2;
};
int main(int argc, char *argv[])
{
MyQueue<int> mq;
int i;
for(i=0;i<10;++i)
{
mq.push(i);
}
for(i=0;i<10;++i)
{
cout<<mq.front()<<endl;
mq.pop();
}
system("PAUSE");
return EXIT_SUCCESS;
}
4. 棧實現最小值
http://blog.csdn.net/puqutogether/article/details/439169455. Linux簡化檔案路徑
這個比較簡單,基本解題思路是以/分隔字串,遇到 . 和 空格什麼都不做,遇到..退棧,其他都進棧,最後把棧中的都用/連線起來就是簡化後的路徑。
舉個例子:
path = "/a/./b/../../c/", => "/c"
壓棧a,壓棧b,遇到..需要出棧b,遇到..需要出棧a,壓棧c。
結果返回棧內只有的c。
相關文章
- 關於Tomcat的13道面試題,你能答對幾個?Tomcat面試題
- 面試的2道題目 (哎)面試
- 關於PHP字串的一道面試題PHP字串面試題
- 談談OKHttp的幾道面試題HTTP面試題
- 幾道和雜湊(雜湊)表有關的面試題面試題
- 一道關於Promise應用的面試題Promise面試題
- 一道關於隨機數生成的題目隨機
- 一道騷面試題目面試題
- 關於Python爬蟲面試50道題Python爬蟲面試
- 一道關於逆向的實戰CTF題目分析
- 一道面試題目引發的思考面試題
- 面試中常見的幾道智力題 來看看你會做幾道(2)?面試
- 7個關於"this"面試題,你知道幾個?面試題
- 幾道和「二叉樹」有關的演算法面試題二叉樹演算法面試題
- 幾道和「堆疊、佇列」有關的面試演算法題佇列面試演算法
- 幾道前端面試題小記前端面試題
- 一道關於筆試的多執行緒題目筆試執行緒
- 關於global和$GLOBALS[]的一道經典面試題面試題
- 分享幾道我們面試前端的“真題”面試前端
- 【Java】幾道常見的秋招面試題Java面試題
- 【Java】幾道讓你拿offer的面試題Java面試題
- 技術面試中常見的幾道智力題 來看看你會做幾道?面試
- 幾道高階前端面試題解析前端面試題
- 從幾道面試題看物件的初始化面試題物件
- 這幾道Java集合框架面試題在面試中幾乎必問Java框架面試題
- 【死磕JVM】一道面試題引發的“棧幀”!!!JVM面試題
- 熟悉這幾道 Redis 高頻面試題,面試不用愁Redis面試題
- 「乾貨」22道機器學習常見面試題目機器學習面試題
- 一道關於二叉樹的位元組面試題的思考二叉樹面試題
- 十幾道含答案的大廠面試題總結面試題
- 幾道特別難搞的資料庫面試題資料庫面試題
- 27道Redis精選面試題,你會做幾題?Redis面試題
- 有點難度,幾道和「滑動視窗」有關的演算法面試題演算法面試題
- 一道與 for 相關的字串面試題字串面試題
- 面試現場簡單幾道java演算法題, 你能寫出幾道?面試Java演算法
- 關於面試你不知道的幾點面試
- 在puber上看到的幾道面試題列舉如下:面試題
- 這些javascript面試題,你做對了幾道?JavaScript面試題