表示式求值 LintCode

2021-08-08 18:43:12 字數 819 閱讀 6691

給乙個用字串表示的表示式陣列,求出這個表示式的值。

示例:

對於表示式 (2*6-(23+7)/(1+2)), 對應的陣列為:

[ 「2」, 「*」, 「6」, 「-「, 「(「,

「23」, 「+」, 「7」, 「)」, 「/」,

(「, 「1」, 「+」, 「2」, 「)」

], 其值為 2

思想:

還是先構造字尾表示式,再利用字尾表示式進行求值。

#ifndef c368_h

#define c368_h

#include

#include

#include

#include

using

namespace

std;

class solution

else

num = yint / xint;

}sk.push(to_string(num));

}else

sk.push(c);

}if (sk.empty())

return

0; else

}int getpriority(string s)

vector

postexpression(vector

&expression)

sk.pop();

}else

sk.push(c);}}

}while (!sk.empty())

return post;

}};#endif

LINTCODE 表示式求值

lintcode 表示式求值 前期準備 首先我們得要了解字首 中綴 字尾表示式分別是什麼,然後計算方法是什麼 舉例 3 4 5 6 就是中綴表示式 3 4 5 6 字首表示式 3 4 5 6 字尾表示式 說簡單點就是運算子的位置,在前的話就是字首,以此類推 詳細了解 對於計算機來說,中綴表示式是相當...

Lintcode 逆波蘭表示式求值

求逆波蘭表示式的值。在逆波蘭表達法中,其有效的運算符號包括 每個運算物件可以是整數,也可以是另乙個逆波蘭計數表達。您在真實的面試中是否遇到過這個題?yes 樣例 2 1 3 2 1 3 9 4 13 5 4 13 5 6 標籤 領英棧 class solution sum convert s.top...

lintcode 逆波蘭表示式求值

求逆波蘭表示式的值。在逆波蘭表達法中,其有效的運算符號包括 每個運算物件可以是整數,也可以是另乙個逆波蘭計數表達。您在真實的面試中是否遇到過這個題?yes 樣例 2 1 3 2 1 3 9 4 13 5 4 13 5 6 思路 碰到不是 就轉換為整數壓棧,碰到了就彈出兩個數進行運算,得到的結果再壓棧...