题目链接:https://www.dotcpp.com/oj/problem1453.html
贪心策略:如果当前位置的字符不匹配,即 src[i] != target[i],将src中的位置 i 和 i+1 的字符进行翻转,用局部最优代替全局最优(但是这种贪心策略为什么可以成立,尚未能给出证明),记录进行翻转次数即为答案。
import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);char[] src = sc.next().toCharArray();char[] target = sc.next().toCharArray();int ans = 0;for(int i = 0; i < src.length-1; i++){if(src[i] != target[i]) {ans++;src[i] = src[i] == '*' ? 'o' : '*';src[i+1] = src[i+1] == '*' ? 'o' : '*';}}System.out.println(ans);}}
