carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.
4 stars 1 forks source link

leetcode2011: Final Value of Variable After Performing Operations #322

Open carloscn opened 1 year ago

carloscn commented 1 year ago

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--".

carloscn commented 1 year ago

Analysis

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;
}
carloscn commented 1 year ago

Code

https://review.gerrithub.io/c/carloscn/structstudy/+/1168383 https://github.com/carloscn/structstudy/commit/71a28d951c07bbf5fadc3e09f22a45aff600f305