מחשבון
מקבלים מחרוזת שיכולה להכיל מספרים שלמים חיוביים וסימני "+","-","\","*" וגם לפעמים רווח " ". יש לחשב תוצאה. לדוגמה: " 2 / 3+5 " יהיה שווה 5.
- public int calculate(string s) {
- int result = 0;
- Stack<int> numbers = new Stack<int>();
- char prevOperation = ' ';
- for(int i = 0; i<s.Lenght;i++) {
- if(s[i]==' ') continue;
- if(Char.IsNumber(s[i])) {
- string strNumber = String.Empty;
- while(i<s.Length && Char.IsNumber(s[i])) {
- strNumber = $"{strNumber}{s[i]}";
- i++;
- }
- int number = Convert.ToInt32(strNumber);
- if(prevOperation == '*') number = numbers.Pop() * number;
- if(prevOperation == '/') number = numbers.Pop() / number;
- if(prevOperation == '-') number = number * -1;
- numbers.Push(number);
- }
- prevOperation = i < s.Length ? s[i] : prevOperation;
- }
- return numbers.Sum();
- }