演算法表示式變成
給定一個如下格式的字串(1,(2,3),(4,(5,6),7))括號內的元素可以是數字,也可以是另一個括號,請實現一個演算法消除巢狀的括號,比如把上面的表示式變成:(1,2,3,4,5,6,7),如果表示式有誤請報錯。
百度筆試題 網上答案很少 自己寫了一個 供大家參考 不對的地方 請賜教
百度筆試題 網上答案很少 自己寫了一個 供大家參考 不對的地方 請賜教
點選(此處)摺疊或開啟
-
stack<char> opr; //括號棧\"(\"
-
stack<char> ch; //數字棧1-9
-
stack<char> result; //結果棧
-
-
void format_turn(const char *str)
-
{
-
if(str==NULL||*str==\'\\0\')
-
{
-
return;
-
}
-
while(*str!=\'\\0\')
-
{
-
if(*str>=\'0\'&&*str<=\'9\')
-
{
-
ch.push(*str); //數字入棧
-
}
-
else if(*str==\'(\')
-
{
-
opr.push(*str); //左符號入棧
-
}
-
else if(*str==\')\') //右符號匹配
-
{
-
if(!opr.empty()) //不為空,消去左符號
-
{
-
opr.pop();
-
}
-
else //為空,失敗
-
{
-
cout<<\"error\"<<endl;
-
return;
-
}
-
}
-
++str;
-
}
-
if(!opr.empty()) //括號棧還有\"(\",失敗
-
{
-
cout<<\"error\"<<endl;
-
return;
-
}
-
else
-
{
-
while(!ch.empty()) //成功,入結果棧
-
{
-
char temp=ch.top();
-
result.push(temp);
-
ch.pop();
-
}
-
}
-
cout<<\"(\"; //正確,輸出結果
-
while(!result.empty())
-
{
-
char temp = result.top();
-
cout<<temp;
-
result.pop();
-
if(result.size()!=0)
-
{
-
cout<<\",\";
-
}
-
else
-
{
-
-
}
-
}
-
cout<<\")\"<<endl;
-
}
-
-
int main(void)
-
{
-
char *str=\"(1,(2,3),(4,(5,6),7))\";
-
format_turn(str);
-
return 0;
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1127030/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 逆波蘭演算法、中綴表示式轉字尾表示式演算法
- 將算數表示式轉換成字尾表示式並計算結果
- 網頁變成黑白樣式網頁
- 【資料結構與演算法】中綴表示式轉字尾表示式以及字尾表示式的計算資料結構演算法
- 演算法之字串——正規表示式匹配演算法字串
- 字尾表示式的求值的演算法演算法
- 第2章 變數、表示式和語句變數
- perl正規表示式中的特殊變數變數
- 資料結構與演算法——棧(五)中綴表示式轉字尾表示式資料結構演算法
- 一種簡易的表示式求值演算法演算法
- 演算法訓練 字首表示式 (藍橋杯)演算法
- C++ 接受狀態變數的lambda表示式C++變數
- 表示式
- 【計算機演算法】 求字首表示式的值計算機演算法
- Java計算器(使用逆波蘭表示式演算法)Java演算法
- C#用正規表示式高效替換變數C#變數
- 根據表示式得出變數型別的網站變數型別網站
- python--表示式(運算表示式)Python
- 【JavaEE】JSP表示式--EL表示式用法JavaJS
- 尹成學院golang學習快速筆記(2)表示式Golang筆記
- 使div變成半透明的css樣式CSS
- 成員變數/函式指標的用法 (轉)變數函式指標
- [查漏補缺]正規表示式匹配演算法演算法
- 【演算法】E.W.Dijkstra算術表示式求值演算法
- 中綴表示式轉為逆波蘭表示式
- [JAVA] Java 變數、表示式和資料型別詳解Java變數資料型別
- 無法在 nginx 的 “if” 正規表示式中使用變數?Nginx變數
- 只能由數字和字母組成的字串正規表示式字串
- JavaScript 表示式JavaScript
- JavaScript表示式JavaScript
- lambda 表示式
- cron表示式
- 表示式樹
- lambda表示式
- 演算法手記(2)Dijkstra雙棧算術表示式求值演算法演算法
- C#中的Lambda表示式和表示式樹C#
- 資料結構與演算法-表示式二叉樹資料結構演算法二叉樹
- 數字索引賦值給多個變數簡單表示式索引賦值變數