欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解析Pascal赋值语句(洛谷P1597题题解,Java语言描述)

程序员文章站 2022-07-13 13:46:45
...

题目要求

P1597题目链接

解析Pascal赋值语句(洛谷P1597题题解,Java语言描述)

分析

我不会Pascal,那就当成字符串做吧 (本来就是嘛)

全是赋值语句,但有的是直接赋值有的是间接赋值,我们可以把这玩意分开处理。
还是老方法,split()就可以啦。

用switch进行判断就行,switch就是干净利落,咯咯咯。

本题直接别强转什么int最省事,只是别忘了赋初值是"0"而不是"",这个挺重要哒。

a、b、c就设置成static的就好啦,改着也顺手呢。

AC代码(Java语言描述)

import java.util.Scanner;

public class Main {

    private static String a = "0", b = "0", c = "0";

    private static void judgeHead(String head, String rear) {
        switch (head) {
            case "a":
                a = judgeRear(rear);
                break;
            case "b":
                b = judgeRear(rear);
                break;
            case "c":
                c = judgeRear(rear);
                break;
        }
    }

    private static String judgeRear(String rear) {
        switch (rear) {
            case "a":
                return a;
            case "b":
                return b;
            case "c":
                return c;
            default:
                return rear;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] array = scanner.nextLine().split(";");
        scanner.close();
        for (int i = 0; i < array.length; i++) {
            String[] temp = array[i].split(":=");
            judgeHead(temp[0], temp[1]);
        }
        System.out.println(a + " " + b + " " + c);
    }
}