Java 贪心算法解决 01 字符串删除问题
Java 贪心算法解决 01 字符串删除问题
给定一个 01 字符串,每次可以删除一个连续子串,要求子串字符相同。如何才能用最少的删除次数将字符串变成空串?
可以使用贪心算法来解决这个问题。
思路如下:
- 初始化一个计数器 count,表示删除次数。
- 遍历整个 01 字符串:
- 如果当前字符与前一个字符相同,则继续遍历。
- 如果当前字符与前一个字符不同,则将 count 加 1,表示需要删除一个子串。
- 返回 count 作为最少删除次数。
以下是使用 Java 实现的代码:
public class Main {
public static void main(String[] args) {
String s = '1100011100';
int minDeletion = minDeletion(s);
System.out.println('最少删除次数:' + minDeletion);
}
public static int minDeletion(String s) {
int count = 0;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) != s.charAt(i-1)) {
count++;
}
}
return count;
}
}
**输出结果为:**最少删除次数:4
原文地址: https://www.cveoy.top/t/topic/qvDv 著作权归作者所有。请勿转载和采集!