Open carloscn opened 1 year ago
fn conv_str_to_int(in_str:&str) -> i32
{
if in_str == "++X" || in_str == "X++" {
return 1;
} else if in_str == "--X" || in_str == "X--" {
return -1;
} else {
return 0;
}
}
pub fn final_value_after_operations(operations: Vec<&str>) -> i32
{
if operations.len() < 1 {
return 0;
}
let mut ret:i32 = 0;
for e in operations {
ret += conv_str_to_int(e);
}
return ret;
}
Description
There is a programming language with only four operations and one variable X:
++X and X++ increments the value of the variable X by 1. --X and X-- decrements the value of the variable X by 1. Initially, the value of X is 0.
Given an array of strings operations containing a list of operations, return the final value of X after performing all the operations.
Example 1:
Input: operations = ["--X","X++","X++"] Output: 1 Explanation: The operations are performed as follows: Initially, X = 0. --X: X is decremented by 1, X = 0 - 1 = -1. X++: X is incremented by 1, X = -1 + 1 = 0. X++: X is incremented by 1, X = 0 + 1 = 1.
Example 2:
Input: operations = ["++X","++X","X++"] Output: 3 Explanation: The operations are performed as follows: Initially, X = 0. ++X: X is incremented by 1, X = 0 + 1 = 1. ++X: X is incremented by 1, X = 1 + 1 = 2. X++: X is incremented by 1, X = 2 + 1 = 3.
Example 3:
Input: operations = ["X++","++X","--X","X--"] Output: 0 Explanation: The operations are performed as follows: Initially, X = 0. X++: X is incremented by 1, X = 0 + 1 = 1. ++X: X is incremented by 1, X = 1 + 1 = 2. --X: X is decremented by 1, X = 2 - 1 = 1. X--: X is decremented by 1, X = 1 - 1 = 0.
Constraints:
1 <= operations.length <= 100 operations[i] will be either "++X", "X++", "--X", or "X--".