示例2
示例**
常用的邏輯運算有and(表示為&),or(表示為|),not(表示為!),他們的邏輯是:
1&1=1 1&0=0 0&1=0 0&0=0
1|1=1 1|0=1 0|1=1 0|0=0
!0=1 !1=0
其中,他們的優先關係為:not(!)>and(&)>or(|);
例如:
a|b&c 實際是 a(b&c)
a&b|c&d 實際是 (a&b)|(c&d)
!a&b|c 實際是 ((!a)&b)|c
1.測試用例中間無空格,無需考慮空格
2.測試用例表示式中只會出現如下字元:
0,1,(,),&,|,!
3.測試用例所給的輸入輸出都是合法的。無需考慮非法輸入。
4.測試用例表示式長度不會超過128個字元。
5.括號可以巢狀。
1|(1&0) = 1
1&0|0&1 = 0
!0&1|0 = 1
((!0&1))|0 = 1
!(1&0)|0&1
1
!(1&0)&0|0
0
public class solution
//對字尾表示式進行運算的函式
private int numbercalculate(string postfix) throws exception else
if ('|' == c)
}//將運算結果壓入運算元棧中
st.push(d3);
} else
} return (int) st.pop();//返回運算結果
} //將算術表示式轉換為字尾表示式的函式,結果以字串的形式返回
private string convertopostfix(string expression) throws exception //為右括號
else if (iscloseparent(c))
}//左括號前面有!則pop
char temp = st.pop();
if (temp == '!') else
}//為運算子
else if (isoperator(c)) //棧取出的字元優先順序比c低,則將取出的字元重新入棧
if (ac != ' ')
}st.push(c); //將c入棧
}//為運算元,直接串聯到postfix內
else
}}//當表示式讀完就將算術棧pop出加入postfix
while (!st.isempty())
return postfix;
} //判斷字元為運算子
private boolean isoperator(char c)
//判斷字元為左括號
private boolean isopenparent(char c)
//判斷字元為右括號
private boolean iscloseparent(char c)
//判斷演算法的優先順序
private int priority(char c)
if (c == '&') else if (c == '|') else return 0;
}}
京東 2019校招筆試 對比
現有n個物品,每個物品有三個引數 ai bi ci 定義i物品不合格品的依據是 若存在物品 j 且aj ai bj bi cj ci,則稱i物品為不合格品。現給出n個物品的a,b,c引數,請你求出不合格品的數量。第一行包含乙個整數n 1 n 500000 表示物品的數量。接下來有n行,每行有三個整數...
2019校招實習筆試彙總
mark下遇到的筆試題吧 招行演算法 同學遇到的題,筆試後交流了下思路,由於a範圍比較小,所以可以暴力 搜尋剪枝 加用集合和字典優化。複雜度大概o n logn 有n種不同的化學試劑。第i種有ai公升。每次實驗都要把所有的化學試劑混在一起,但是這些試劑的量一定要相等。所以現在的首要任務是把這些化學試...
位元組跳動2019校招前端筆試
題目描述 開心消消樂 給定乙個一維的正整數陣列,逐次選擇其中乙個數做消除,消除所獲得的分數為當前數字和左右相鄰數字的乘積 當左邊或者右邊沒有數字可以認為是1 e.g.輸入陣列 3,1,5,8 step1 消除1 獲得分數 15 3x1x5,陣列變為 3,5,8 step2 消除5,獲得分數 120 ...