AcWing:1208. 翻硬币
太巧妙了,看完题目基本是没有思路的, 不知道怎么入手
偏思维, 我们只需要从前往后遍历, 遇到不同就将当前与下一个进行翻转,因为题目保证有解, 所以必定是可以恢复到原来的.
AC Code
import java.util.*;
import static java.lang.System.out;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String o = in.next();
String n = in.next();
char[] ocs = o.toCharArray();
char[] ncs = n.toCharArray();
int len = ocs.length;
int ans = 0;
for(int i = 0; i < len - 1; i++) {
if(ocs[i] != ncs[i]) {
// 进行翻转
if(ncs[i + 1] == '*') ncs[i + 1] = 'o';
else ncs[i + 1] = '*';
ans++;
}
}
out.println(ans);
}
}