lintcode——表示式求值
前期準備:
首先我們得要了解字首、中綴、字尾表示式分別是什麼,然後計算方法是什麼
舉例:
(3 + 4) × 5 - 6 就是中綴表示式
- × + 3 4 5 6 字首表示式
3 4 + 5 × 6 - 字尾表示式
說簡單點就是運算子的位置,在前的話就是字首,以此類推;
詳細了解:
對於計算機來說,中綴表示式是相當複雜的,所以我們為了他簡化問題,那麼就可以理解為,這套題目考的就是由中綴表示式轉換成字首或者字尾表示式求值,話不多說,直接上**。
我把中綴轉字首和字尾的**都寫了,不過最後計算使用字首表示式計算的,感興趣的自己算字尾表示式的值;
class solution
}return res.empty()? 0 : res.top();
}vector
begine(vector
&stemp)
s.pop();
}else
else}}
}while(!s.empty())
return sbegin;
}vector
ende(vector
&stemp)
s.pop();
}else
else}}
}return send;
}int cmp(string a)
}int acl(int a , string x, int b)
}};
表示式求值 LintCode
給乙個用字串表示的表示式陣列,求出這個表示式的值。示例 對於表示式 2 6 23 7 1 2 對應的陣列為 2 6 23 7 1 2 其值為 2 思想 還是先構造字尾表示式,再利用字尾表示式進行求值。ifndef c368 h define c368 h include include includ...
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 思路 碰到不是 就轉換為整數壓棧,碰到了就彈出兩個數進行運算,得到的結果再壓棧...