2017華為機試(仿LISP字串運算)

2021-08-14 14:30:01 字數 812 閱讀 1781

[程式設計|300分] 仿lisp字串運算

題目描述

lisp語言唯一的語法就是括號要配對。

形如 (op p1 p2 …),括號內元素由單個空格分割。

其中第乙個元素op為操作符,後續元素均為其引數,引數個數取決於操作符型別

注意:引數 p1, p2 也有可能是另外乙個巢狀的 (op p1 p2 …)

當前op型別為add/sub/mul/div(全小寫),分別代表整數的加減乘除法。簡單起見,所以op引數個數為2

舉例 -輸入:(mul 3 -7)輸出:-21

輸入:(add 1 2) 輸出:3

輸入:(sub (mul 2 4) (div 9 3)) 輸出 :5

輸入:(div 1 0) 輸出:error

常規方法是用兩個棧分別存放運算元和操作符,本文用乙個棧來實現,首先從後往前提取運算元和操作符存放在vector,然後判斷。

**如下

[cpp] view plain copy

#include#include #include#include#include using namespace std;  

int main()

else

} int n = st.size();

for (int j = 0; jres.push(result);

} else

} if (!flag)

cout << "error" << endl;

else

cout<}

2017華為機試(仿LISP字串運算)

程式設計 300分 仿lisp字串運算 題目描述 lisp語言唯一的語法就是括號要配對。形如 op p1 p2 括號內元素由單個空格分割。其中第乙個元素op為操作符,後續元素均為其引數,引數個數取決於操作符型別 注意 引數 p1,p2 也有可能是另外乙個巢狀的 op p1 p2 當前op型別為add...

華為機試(仿LISP字串運算)

程式設計 300分 仿lisp字串運算 時間限制 3秒 空間限制 32768k 題目描述 lisp語言唯一的語法就是括號要配對。形如 op p1 p2 括號內元素由單個空格分割。其中第乙個元素op為操作符,後續元素均為其引數,引數個數取決於操作符型別 注意 引數 p1,p2 也有可能是另外乙個巢狀的...

華為機試題 仿LISP字串運算 C 實現

題目描述 lisp語言唯一的語法就是括號要配對。形如 op p1 p2 括號內元素由單個空格分割。其中第乙個元素op為操作符,後續元素均為其引數,引數個數取決於操作符型別 注意 引數 p1,p2 也有可能是另外乙個巢狀的 op p1 p2 當前op型別為add sub mul div 全小寫 分別代...