AcWing:1208。コインを回します
とても独創的です。トピックを読んだ後は、基本的にわかりません。始め方がわかりません。
部分的な考え方では、問題は確実に解決されるため、前から後ろにトラバースし、違いが発生したときに現在と次を反転するだけで済みます。元の状態に戻す必要があります。
ACコード
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);
}
}