返回题解分享
讨论 / 题解分享/ 帖子详情

接龙数列(编程题) - 题解

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); // 读取数列长度
        int[] f = new int[10]; // 初始化数组f

        int ans = Integer.MAX_VALUE; // 初始化答案为最大整数值

        // 遍历输入的每个数字字符串
        for (int i = 1; i <= n; i++) {
            String s = scanner.next();
            int lastDigit = s.charAt(s.length() - 1) - '0'; // 获取字符串的最后一个字符的数字
            int firstDigit = s.charAt(0) - '0'; // 获取字符串的第一个字符的数字

            // 更新数组f
            f[lastDigit] = Math.max(f[lastDigit], f[firstDigit] + 1);
        }

        // 找出最小的f值,即最长的接龙数列
        for (int i = 0; i < 10; i++) {
            ans = Math.min(ans, n - f[i]);
        }

        System.out.println(ans); // 输出答案
        scanner.close(); // 关闭scanner
    }
}
```
0 回复 0 转发 0 喜欢 6 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!