AcWing 1208. Java-递归和非递归解法
原题链接
简单
作者:
zlnnjit
,
2021-02-02 22:03:09
,
所有人可见
,
阅读 378
递归解法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
private static char[] raw;
private static char[] target;
private static int count = 0;
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
raw = bufferedReader.readLine().toCharArray();
target = bufferedReader.readLine().toCharArray();
recursion(0);
System.out.println(count);
}
private static void recursion(int index) {
if (index == raw.length - 1) return;
if (raw[index] != target[index]) {
count++;
raw[index] = raw[index] == '*' ? 'o' : '*';
raw[index + 1] = raw[index + 1] == '*' ? 'o' : '*';
}
recursion(++index);
}
}
非递归解法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
char[] raw = bufferedReader.readLine().toCharArray();
char[] target = bufferedReader.readLine().toCharArray();
int count = 0;
for (int i = 0; i < raw.length - 1; i++) {
if (raw[i] != target[i]) {
count++;
raw[i] = raw[i] == '*' ? 'o' : '*';
raw[i + 1] = raw[i + 1] == '*' ? 'o' : '*';
}
}
System.out.println(count);
}
}