LeetCode 简单题分享(2)

执行操作后的变量值

题目:

LeetCode 简单题分享(2)_第1张图片

 这道题也是一到基础题,有两种思路,第一种就是完整的字符串比较,如果字符串等于++X或者X++就把X+1,如果等于--X或者X--,就把字符串-1

代码如下:

public class test {
    public static void main(String[] args) {
        String[] operations= {"--X","X++","X++"};
        int x = finalValueAfterOperations(operations);
        System.out.println("x= "+x);
    }
        public static int finalValueAfterOperations(String[] operations) {
            int num = operations.length;

            int X =0;
            for(int i=0;i

这段代码再idea中跑出来没有问题,但是不知道什么情况再leetcode上跑出来是错误的,所以我把==换成了.equals,运行成功,代码如下:

    public int finalValueAfterOperations(String[] operations) {
            int num = operations.length;

            int X =0;
            for(int i=0;i

leetcode运行结果:

LeetCode 简单题分享(2)_第2张图片

当然也可以选择另外一个想法,我们可以清楚的看到,不论是X++,++X,X--,--X,这四个字符串的第二个位置上的符号,其实决定了最终运行的符号,所以没有必要去比较整个字符传,我们只需要遍历这个String [] 然后获取第二位,也就是charAt(1)上面的字符就可以了

代码如下:

class Solution {
    public int finalValueAfterOperations(String[] operations) {
        //定义一个X=0
        int X=0;
        //循环遍历operation中的字符串s
        for(String s : operations){
            //不论是X--,--X,X++,++X,只用判定再第二个位置上的符号是什么就可以了
            if(s.charAt(1)=='+'){
                X++;
            }else if(s.charAt(1)=='-'){
                X--;
            }
        }
        return X;
    }
}

leetcode运行结果:

LeetCode 简单题分享(2)_第3张图片

 由此可见两个方法都可以成功。

以上就是我关于这道题问题的思路,欢迎交流。

你可能感兴趣的:(leetcode,java,leetcode)