aiaiask.com©

开花即结果 提问即答案

游游的字符串中好子串数量计算方法及Java代码实现
原始问题:

游游的字符串中好子串数量计算方法及Java代码实现

要解决这个问题,我们可以使用动态规划的方法。首先,我们需要创建一个布尔数组 dp,其中 dp[i] 表示字符串从索引 i 开始的子串是否是好子串。然后,我们遍历字符串,对于每个字符,我们检查它前面的所有子串,如果在某个位置上,0 的数量大于 1 的数量,那么我们就更新 dp[i] 为 true。最后,我们统计 dp 数组中 true 的个数,即为所求的好子串个数。

以下是详细的 Java 代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        System.out.println(countGoodSubstrings(input));
    }

    public static int countGoodSubstrings(String input) {
        int n = input.length();
        boolean[] dp = new boolean[n];
        dp[0] = (input.charAt(0) == '0');

        for (int i = 1; i < n; i++) {
            if (input.charAt(i) == '0') {
                dp[i] = (i > 0 && dp[i - 1]) || (i > 1 && !dp[i - 2]);
            } else {
                dp[i] = (i > 0 && !dp[i - 1]) || (i > 1 && dp[i - 2]);
            }
        }

        int count = 0;
        for (boolean b : dp) {
            count += b ? 1 : 0;
        }
        return count;
    }
}

这段代码首先读取输入的字符串,然后调用 countGoodSubstrings 方法计算好子串的个数,并输出结果。

游游的字符串中好子串数量计算方法及Java代码实现
https://www.aiaiask.com/ask/46262.html
AI / 模型DeepSeek
时间 / DATESeptember 7, 2023, 8:16 PM
语言zh-CN
IP / 区域湖北 武汉