פבר.28

מחשבון

מחשבון

מקבלים מחרוזת שיכולה להכיל מספרים שלמים חיוביים וסימני "+","-","\","*" וגם לפעמים רווח " ". יש לחשב תוצאה. לדוגמה: " 2 / 3+5 " יהיה שווה 5.

  1. public int calculate(string s) {
  2. int result = 0;
  3. Stack<int> numbers = new Stack<int>();
  4. char prevOperation = ' ';
  5.  
  6. for(int i = 0; i<s.Lenght;i++) {
  7. if(s[i]==' ') continue;
  8. if(Char.IsNumber(s[i])) {
  9. string strNumber = String.Empty;
  10. while(i<s.Length && Char.IsNumber(s[i])) {
  11. strNumber = $"{strNumber}{s[i]}";
  12. i++;
  13. }
  14. int number = Convert.ToInt32(strNumber);
  15. if(prevOperation == '*') number = numbers.Pop() * number;
  16. if(prevOperation == '/') number = numbers.Pop() / number;
  17. if(prevOperation == '-') number = number * -1;
  18. numbers.Push(number);
  19. }
  20. prevOperation = i < s.Length ? s[i] : prevOperation;
  21. }
  22. return numbers.Sum();
  23. }
תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה