qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

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

时间2023-09-07 20:16:54 提问来自 湖北省武汉市 的网友 分类创作 浏览852
要解决这个问题,我们可以使用动态规划的方法。首先,我们需要创建一个布尔数组 dp,其中 dp[i] 表示字符串从索引 i 开始的子串是否是好子串。然后,我们遍历字符串,对于每个字符,我们检查它前面的所有子串,如果在某个位置上,0 的数量大于 1 的数量,那么我们就更新 dp[i] 为 true。最后,我们统计 dp 数组中 true 的个数,即为所求的好子串个数。 以下是详细的 Java 代码: ```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 方法计算好子串的个数,并输出结果。

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 在市场监督管理局实习获得的收获 下一篇 电极丝有哪些方面的性能需要检测