Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kompanija;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.Stack;
- public class SLLKompanija {
- // funkcija za presmetuvanje na izrazot pocnuvajki
- // od indeks l, zavrsuvajki vo indeks r
- public static boolean isOperator(char c){
- return (c=='+') || (c=='-');
- }
- static int presmetaj(char c[], int l, int r) {
- Stack<Integer> nums = new Stack<Integer>();
- Stack<Character> ops = new Stack<Character>();
- for (char i: c){
- if(Character.isDigit(i)) nums.push(i-'0');
- if (isOperator(i)) ops.push(i);
- }
- while(true){
- int a = nums.pop();
- int b = nums.pop();
- char o = ops.pop();
- switch(o){
- case('+'): nums.push(a+b);
- break;
- case('-'): nums.push(b-a);
- break;
- }
- int tmp = nums.pop();
- if (nums.isEmpty()) return tmp;
- else nums.push(tmp);
- }
- }
- public static void main(String[] args) throws Exception {
- int i,j,k;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String expression = br.readLine();
- char exp[] = expression.toCharArray();
- int rez = presmetaj(exp, 0, exp.length-1);
- System.out.println(rez);
- br.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement