加減乘除有一種位運算可以計算的,但是我這裡只寫非位運算的,但它也不涉及到什麼演算法,只是單純的coding能力的考察。
不過我感覺會有點複雜,為了記住,我想畫幾張圖。
給定乙個字串為計算式的表達,請返回計算後的結果首先分為有小括號的情況和沒有小括號的情況,沒有小括號的情況其實也就是乘除需要注意一點,其他都是很簡單的;ps:給定的字串絕對正確,不用擔心溢位的問題
有小括號的情況我們直接用遞迴去搞定它。
沒有小括號的情況,我們可以直接去遍歷字串,把遍歷到的數字或者符號壓入棧裡或者佇列,在壓入的時候需要判斷,如果原先的棧頂為乘除符號,我們需要先計算好乘除之後再壓進去。
最後得到最終結果只需要把棧裡面的所有東西都給彈出來做加減就行了。
publicstatic
intgetvalue(string str)
//返回陣列長度為2,
//arr[0]代表計算結果
//arr[1]代表計算到的位置
public
static
int value(char str, int
i)
else
if (str[i] != '(')
else
}addnum(que, pre);
return
newint
; }
//這個函式就是,給我乙個數和乙個佇列
//我判斷佇列頭是 '+'
//'-'
//'*'
//'/'
//如果+,那麼直接放進去即可
public
static
void addnum(linkedlistque, int
num)
else
}que.addlast(string.valueof(num));
}//這裡的函式的前提就是已經遍歷玩了,佇列裡面只有+ - ,這裡就直接計算就好了
public
static
int getnum(linkedlistque)
else
if (cur.equals("-"))
else
}return
res;
}
中加減乘除 晉朝成語 加減乘除
讀 音 ji ji n ch ng ch 釋 義 算術的四則運算,借指事物的消長變化。出 自 明 王九思 端正好 次韻贈邵晉夫歸隱 端的是太平人物,誰想道命兒中加減乘除。例句1.他們的第一台機器可以加減乘除。2.通過教她不同的錢的面額幫你的孩子學會加減乘除。3.阿拉巴馬州和密西西比州有差不多一半的孩...
C BigInterger 加減乘除
c biginterger 加減乘除 include include include include include using namespace std class dividedbyzeroexception class biginteger biginteger.cpp const bigi...
大數加減乘除
include include include include includeusing namespace std compare比較函式 相等返回0,大於返回1,小於返回 1 int compare string str1,string str2 if cf 0 str char cf 0 st...