Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.37 KB | None | 0 0
  1. package kompanija;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.util.Stack;
  5.  
  6. public class SLLKompanija {
  7.    
  8.     // funkcija za presmetuvanje na izrazot pocnuvajki
  9.     // od indeks l, zavrsuvajki vo indeks r
  10.     public static boolean isOperator(char c){
  11.         return (c=='+') || (c=='-');
  12.     }
  13.    
  14.     static int presmetaj(char c[], int l, int r) {
  15.         Stack<Integer> nums = new Stack<Integer>();
  16.         Stack<Character> ops = new Stack<Character>();
  17.         for (char i: c){
  18.             if(Character.isDigit(i)) nums.push(i-'0');
  19.             if (isOperator(i)) ops.push(i);
  20.         }
  21.        
  22.         while(true){
  23.             int a = nums.pop();
  24.             int b = nums.pop();
  25.             char o = ops.pop();
  26.             switch(o){
  27.                 case('+'): nums.push(a+b);
  28.                 break;
  29.                 case('-'): nums.push(b-a);
  30.                 break;
  31.             }
  32.             int tmp = nums.pop();
  33.             if (nums.isEmpty()) return tmp;
  34.             else nums.push(tmp);
  35.         }
  36.        
  37.     }
  38.    
  39.     public static void main(String[] args) throws Exception {
  40.         int i,j,k;
  41.        
  42.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  43.        
  44.         String expression = br.readLine();
  45.         char exp[] = expression.toCharArray();
  46.        
  47.         int rez = presmetaj(exp, 0, exp.length-1);
  48.         System.out.println(rez);
  49.        
  50.         br.close();
  51.        
  52.     }
  53.    
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement