# Evaluate an array expression with numbers, + and –

• Difficulty Level : Basic
• Last Updated : 04 Aug, 2022

Given an array arr[] of string type which consists of strings “+”, “-” and Numbers. Find the sum of the given array.

Examples :

```Input : arr[] = {"3", "+", "4", "-", "7", "+", "13"}
Output : Value = 13
The value of expression 3+4-7+13 is 13.

Input : arr[] = { "2", "+", "1", "-8", "+", "13"}
Output : Value = 8```

Approach :

1. First of all, initialize the sum i.e, sum = 0.
2. Start traversing the array.
3. As there is string of numbers at every even position of the array, so convert this string into integer and store in a variable value by using stoi function in C++
4. As there is operator at every odd position, check if the operator is ‘+’ or ‘-‘. If it is ‘+’, then add the value to the sum, else subtract from the sum.
5. Finally, return the sum obtained.

Below is the implementation of the above approach :

## C++

 `// C++ program to find sum of given array of ` `// string type in integer form` `#include ` `using` `namespace` `std;`   `// Function to find the sum of given array` `int` `calculateSum(string arr[], ``int` `n)` `{   ` `    ``// if string is empty` `    ``if` `(n == 0)` `       ``return` `0;`   `    ``string s = arr[0];`   `    ``// stoi function to convert` `    ``// string into integer` `    ``int` `value = stoi(s);` `    ``int` `sum = value;`   `    ``for` `(``int` `i = 2; i < n; i = i + 2)` `    ``{` `        ``s = arr[i];`   `        ``// stoi function to convert ` `        ``// string into integer` `        ``int` `value = stoi(s);`   `        ``// Find operator` `        ``char` `operation = arr[i - 1][0];`   `        ``// If operator is equal to '+',` `        ``// add value in sum variable ` `        ``// else subtract` `        ``if` `(operation == ``'+'``)` `            ``sum += value;` `        ``else` `            ``sum -= value;` `    ``}` `    ``return` `sum;` `}`   `// Driver Function` `int` `main()` `{` `    ``string arr[] = { ``"3"``, ``"+"``, ``"4"``, ``"-"``,` `                     ``"7"``, ``"+"``, ``"13"` `};` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);   ` `    ``cout << calculateSum(arr, n);   ` `    ``return` `0;` `}`

## Java

 `// Java program to find sum of given array of ` `// string type in integer form` `import` `java.io.*;`   `class` `GFG {` `    `  `    ``// Function to find the sum of given array` `    ``public` `static` `int` `calculateSum(String arr[], ``int` `n)` `    ``{ ` `        ``// if string is empty` `        ``if` `(n == ``0``)` `        ``return` `0``;` `        ``String s = arr[``0``];` `        `  `        ``// parseInt function to convert` `        ``// string into integer` `        ``int` `value = Integer.parseInt(s);` `        ``int` `sum = value;` `    `  `        ``for` `(``int` `i = ``2``; i < n; i = i + ``2``)` `        ``{` `            ``s = arr[i];` `    `  `            ``// parseInt function to convert ` `            ``// string into integer` `            ``value = Integer.parseInt(s);` `    `  `            ``// Find operator` `            ``char` `operation = arr[i - ``1``].charAt(``0``);` `    `  `            ``// If operator is equal to '+',` `            ``// add value in sum variable ` `            ``// else subtract` `            ``if` `(operation == ``'+'``)` `                ``sum += value;` `            ``else` `                ``sum -= value;` `        ``}` `        ``return` `sum;` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main (String[] args) ` `    ``{` `        ``String arr[] = { ``"3"``, ``"+"``, ``"4"``, ``"-"``,` `                        ``"7"``, ``"+"``, ``"13"` `};` `        ``int` `n = arr.length; ` `        ``System.out.println( calculateSum(arr, n)); ` `    ``}` `}`   `// This code in contributed by Upendra bartwal`

## Python 3

 `# Python3 program to find sum of given ` `# array of string type in integer form`   `# Function to find the sum of given array` `def` `calculateSum(arr, n):`   `    ``# if string is empty` `    ``if` `(n ``=``=` `0``):` `        ``return` `0`   `    ``s ``=` `arr[``0``]`   `    ``# stoi function to convert` `    ``# string into integer` `    ``value ``=` `int``(s)` `    ``sum` `=` `value`   `    ``for` `i ``in` `range``(``2` `, n, ``2``):` `    `  `        ``s ``=` `arr[i]`   `        ``# stoi function to convert ` `        ``# string into integer` `        ``value ``=` `int``(s)`   `        ``# Find operator` `        ``operation ``=` `arr[i ``-` `1``][``0``]`   `        ``# If operator is equal to '+',` `        ``# add value in sum variable ` `        ``# else subtract` `        ``if` `(operation ``=``=` `'+'``):` `            ``sum` `+``=` `value` `        ``else``:` `            ``sum` `-``=` `value` `    `  `    ``return` `sum`   `# Driver Function` `arr ``=` `[``"3"``, ``"+"``, ``"4"``, ``"-"``,``"7"``, ``"+"``, ``"13"``] ` `n ``=` `len``(arr)` `print``(calculateSum(arr, n))`   `# This code is contributed by Smitha`

## C#

 `// C# program to find sum of given array of ` `// string type in integer form` `using` `System;`   `class` `GFG {` `    `  `    ``// Function to find the sum of given array` `    ``public` `static` `int` `calculateSum(``string` `[]arr,` `                                          ``int` `n)` `    ``{ ` `        `  `        ``// if string is empty` `        ``if` `(n == 0)` `            ``return` `0;` `        ``string` `s = arr[0];` `        `  `        ``// parseInt function to convert` `        ``// string into integer` `        ``int` `value = ``int``.Parse(s);` `        ``int` `sum = value;` `    `  `        ``for` `(``int` `i = 2; i < n; i = i + 2)` `        ``{` `            ``s = arr[i];` `    `  `            ``// parseInt function to convert ` `            ``// string into integer` `            ``value = ``int``.Parse(s);` `    `  `            ``// Find operator` `            ``char` `operation = arr[i - 1][0];` `    `  `            ``// If operator is equal to '+',` `            ``// add value in sum variable ` `            ``// else subtract` `            ``if` `(operation == ``'+'``)` `                ``sum += value;` `            ``else` `                ``sum -= value;` `        ``}` `        `  `        ``return` `sum;` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `Main () ` `    ``{` `        ``string` `[]arr = { ``"3"``, ``"+"``, ``"4"``, ``"-"``,` `                           ``"7"``, ``"+"``, ``"13"` `};` `        ``int` `n = arr.Length; ` `        `  `        ``Console.Write(calculateSum(arr, n)); ` `    ``}` `}`   `// This code in contributed by nitin mittal.`

## PHP

 ``

## Javascript

 ``

Output

`13`

Time Complexity: O(n)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles