原创 2021-11-23 09:23:49

题目概述

存在一种仅支持 4 种操作和 1 个变量 X 的编程语言:

++X 和 X++ 使变量 X 的值 加 1
—X 和 X— 使变量 X 的值 减 1
最初,X 的值是 0

给你一个字符串数组 operations ,这是由操作组成的一个列表,返回执行所有操作后, X 的 最终值 。

示例 1:

输入:operations = ["--X","X++","X++"]
输出:1
解释:操作按下述步骤执行:
最初,X = 0
--X:X 减 1 ,X =  0 - 1 = -1
X++:X 加 1 ,X = -1 + 1 =  0
X++:X 加 1 ,X =  0 + 1 =  1

示例 2:

输入:operations = ["++X","++X","X++"]
输出:3
解释:操作按下述步骤执行: 
最初,X = 0
++X:X 加 1 ,X = 0 + 1 = 1
++X:X 加 1 ,X = 1 + 1 = 2
X++:X 加 1 ,X = 2 + 1 = 3

示例 3:

输入:operations = ["X++","++X","--X","X--"]
输出:0
解释:操作按下述步骤执行:
最初,X = 0
X++:X 加 1 ,X = 0 + 1 = 1
++X:X 加 1 ,X = 1 + 1 = 2
--X:X 减 1 ,X = 2 - 1 = 1
X--:X 减 1 ,X = 1 - 1 = 0

提示:

1 <= operations.length <= 100
operations[i] 将会是 "++X"、"X++"、"--X" 或 "X--"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/final-value-of-variable-after-performing-operations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

答案解析

个人解法

看到这题的时候感觉这题挺简单。和以前刷到的题不一样。看到就有思路了。

class Solution {
    public int finalValueAfterOperations(String[] operations) {
        int x = 0;
        for(String str : operations){
            if(str.equals("--X") || str.equals("X--")){
                x -= 1;
            }else if(str.equals("++X") || str.equals("X++")){
                x += 1;
            }
        }
        return x;
    }
}

评论区

上面的代码都是一边通过。也没啥好解释的。想看看别人的解题过程是咋样的。结果一看。秀到我了。
人家的思路是减和加是靠中间的符号来决定的也就是代码中的operations[i].charAt(1)。一开始我还好奇44是怎么来的。发现是ASCLL码。

class Solution { 
    public int finalValueAfterOperations(String[] operations) { 
        int X = 0; 
        for(int i=0;i<operations.length;i++){
            X+=(44-operations[i].charAt(1)); 
        }
        return X;
    }
}
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

延伸阅读
  1. leetcode第1720题(解码异或后的数组)
  2. leetCode第1480题(一维数组的动态和)
  3. leetCode第1863题 找出所有子集的异或总和再求和
  4. 算法:0移动问题
发表评论