字串處理 表示式

2021-06-20 23:58:07 字數 1344 閱讀 1074

problem 67: 表示式

description

給你乙個只有+和*的無括號表示式,給這個表示式加上任意括號,求出這個表示式的最大值和最小值

input

先是n(n < 10000)表示測試資料組數

接下n行每一行乙個表示式,表示式中不會超過100個數,每個數大於等於1小於等於20,測試資料結果不超過longlong型別

output

按下列事例輸出每一行的最大值和最小值

sample input

31+2*3*4+5

4*18+14+7*10

3+11+4*1*13*12*8+3*3+8

sample output

the maximum and minimum are 81 and 30.

the maximum and minimum are 1560 and 156.

the maximum and minimum are 339768 and 5023.

思路:按照+ 和 * 的運算規則運算原式即把式子裡的數都變成相加就得到的是最小值,把式子裡的數都變成相乘就能得到最大值。

那麼剩下的就是棧的操作了,找最小值時,把乘號兩邊的運算數都乘成為「乙個」加號的運算數,最後把留在棧裡的元素加起來即為最小值;找最大值時,把加號兩邊的運算數都加成為「乙個」乘號的運算數,最後把留在棧裡的元素乘起來即為最大值。

#include#include#include#includeusing namespace std;

int main()

s.push(temp);

while(i < len)

a = s.top();

s.pop();

a += temp;

s.push(a);

}else

s.push(temp);}}

max = 1;

while(!s.empty())

i = 0; temp = 0;

while(str[i] >= '0' && str[i] <= '9')

s.push(temp);

while(i < len)

a = s.top();

s.pop();

a *= temp;

s.push(a);

}else

s.push(temp);}}

min = 0;

while(!s.empty())

printf("the maximum and minimum are %lld and %lld.\n", max, min);

}return 0;

}

EL表示式處理字串

else 原來得到的是如2006 11 12 11 22 22.0 使用functions函式來獲取list的長度 fn contains string,substring 假如引數string中包含引數substring,返回true fn containsignorecase string,su...

shell 字串 表示式

在shell程式設計中,經常要處理一些字串變數。比如,計算長度啊 擷取子串啊 字元替換啊等等,常常要用到awk expr sed tr等命令。下面給大家介紹個簡單的字串處理方法,用不著巢狀複雜的子命令。計算value字串的字元數量。或 刪除value字串中以分隔符 匹配的右邊字元,保留左邊字元。或 ...

字串 表示式求值

不曾想到我居然還會寫這種部落格,然而自己是真的對這些模擬很噁心。這簡單,可以遞迴求解,遇到乙個符號,直接往下遞迴。這裡我的處理是有空格的,因此呢可以使用atof將字串轉化了double,atoi好像是轉化為int。include include include include include inc...