Java实现 蓝桥杯 历届试题 翻硬币
2023-09-14 08:58:12 时间
问题描述
小明正在玩一个“翻硬币”的游戏。
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。
比如,可能情形是:**oo***oooo
如果同时翻转左边的两个硬币,则变为:oooo***oooo
现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:
输入格式
两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000
输出格式
一个整数,表示最小操作步数。
样例输入1
**********
o****o****
样例输出1
5
样例输入2
*o**o***o***
*o***o**o***
样例输出2
1
import java.util.Scanner;
public class Main {
public static void reverse(char[] A, int i) {
if(A[i] == 'o')
A[i] = '*';
else if(A[i] == '*')
A[i] = 'o';
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String A = in.next();
String B = in.next();
int result = 0;
char[] arrayA = A.toCharArray();
char[] arrayB = B.toCharArray();
for(int i = 0;i < arrayA.length - 1;i++) {
if(arrayA[i] != arrayB[i]) {
reverse(arrayA, i);
reverse(arrayA, i + 1);
result++;
}
}
System.out.println(result);
}
}
相关文章
- Java实现 蓝桥杯 历届试题 连号区间数
- Java实现 蓝桥杯 历届试题 危险系数
- Java实现 蓝桥杯 历届试题 危险系数
- Java实现 蓝桥杯 历届试题 邮局
- Java 实现 蓝桥杯 历届试题 分糖果
- Java实现蓝桥杯历届试题填字母游戏
- Java实现 蓝桥杯 历届试题 小计算器
- Java实现蓝桥杯 历届试题 k倍区间
- Java实现蓝桥杯历届试题高僧斗法
- Java实现蓝桥杯历届试题格子刷油漆
- java实现 历届试题 蓝桥杯 打印十字图
- 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- java死锁(Java-level deadlock)
- 详解jvm之java类加载机制和类加载器(ClassLoader) 深入理解Java类加载器(ClassLoader) 如何自定义类加载器 深入说明双亲委派 双亲委派模型的破坏者-线程上下文类加载器
- 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略
- 下载各个版本java (Java Development Kit)
- 【java】Java 中泛型的实现原理