黑白切换 (ac)抱歉抱歉,贴的是交卷后自己又精简了的代码,当时有点迷糊,代码写错了。现在已修复,谢谢各位指正。思路是这样的:总共三个操作:交换,变值,翻转。交换一次可以变两个数字,而变值一次只可以变一个数字,所以优先交换。翻转也就多一次操作,所以比较一下考虑翻转和不考虑翻转的情况就行了。若不考虑翻转的话:在 A 串中有 n 个 '0' 需要变成 '1', m 个 ‘1’ 需要变成 '0'. 那么交换 min(n, m) 次,之后还剩 max(n, m) - min(n, m) 个值需要变值。所以一共 max(n, m) 次。考虑翻转的话,就先翻转,再进行上述的操作。 import java....