PREV-6翻硬币(Java)
PREV-6翻硬币(Java)
前言
这是一道简单题,只要用心去想很容易就想到了
问题描述
小明正在玩一个“翻硬币”的游戏。
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。
比如,可能情形是:##oo###oooo
如果同时翻转左边的两个硬币,则变为:oooo###oooo
现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:
输入格式
两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000
输出格式
一个整数,表示最小操作步数。
样例输入1
**********
o****o****
样例输出1
5
样例输入2
*o**o***o***
*o***o**o***
样例输出2
1
AC代码
package lanqiao;import java.util.Scanner;public class PREV_6 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);String s1=sc.nextLine();String s2=sc.nextLine();boolean[] ch1=new boolean[s1.length()];boolean[] ch2=new boolean[s2.length()];int count=0;for(int i=0;i<s1.length();i++){//转换为boolean数组,便于处理,实际上不用转换,解题的关键不在这里if(s1.charAt(i)=='*')ch1[i]=true;elsech1[i]=false;if(s2.charAt(i)=='*')ch2[i]=true;elsech2[i]=false;}for(int i=0;i<ch1.length-1;i++){if(ch1[i]!=ch2[i]){//这才是关键,只要不一样就让下一个变化,计数加1,即可ch1[i]=!ch1[i];//这句也可以省略//这两句是关键ch2[i+1]=!ch2[i+1];count++;}}System.out.println(count);}}
总结
刚看到这道题的时候,有点一筹莫展,不知道怎么下手,慢慢的从头一步一步分析,就能找到办法,这道题只需要匹配到不相同的,就变化下一个,就这么简单
PREV-6翻硬币(Java)相关推荐
- 蓝桥杯历届试题:翻硬币——Java实现
题目: 以下是输入输出格式: 这里我也没多想,看到了输入的字符串不是固定的,但是我们需要对其进行元素的操作,马上就想到了Java中字符串和字符数组之间的转换--toCharArray()方法. 以下是 ...
- 蓝桥 历届试题 矩阵翻硬币 JAVA
问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转. 其 ...
- DOTA2翻硬币网站规则java版本
DOTA2翻硬币网站规则java版本 package com.yagou.yggx.provider.ygst.task;import java.math.BigDecimal; import jav ...
- 算法技巧-翻硬币问题java
1902 翻硬币 有N枚硬币,编号1到N.现在有如下4种操作: 1.翻转所有硬币,即正的变成反的,反的变成正的. 2.翻转所有奇数号的硬币. 3.翻转所有偶数号的硬币. 4.翻转所有编号形式为 3M+ ...
- 浅谈 翻硬币游戏【Nim博弈】
ACM博客_kuangbin 博弈-翻硬币游戏 hihoCoder 1172 : 博弈游戏·Nim游戏·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Alice和B ...
- 蓝桥杯历届试题----矩阵翻硬币
矩阵翻硬币 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵.随后,小明对每一个硬币分别进行一次 Q 操作.对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进 ...
- 蓝桥杯试题:矩阵翻硬币
矩阵翻硬币 这是蓝桥杯的一道练习题,题目如下: 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所 ...
- AcWing 1208. 翻硬币
1208. 翻硬币 题意: 给定一个初始字符串(只含*和o字符) 给定一个目标字符串(只含*和o字符) 翻转初始字符串,每次会同时翻转其相邻的两个字符 求初始字符串翻转到目标字符串的最小翻转次数 输入 ...
- 蓝桥杯:翻硬币(贪心)
历届试题 翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反 ...
最新文章
- Mozilla公布WebVR API标准草案
- 【ACM】杭电OJ 2027
- java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置...
- css 剪辑图片_CSS中的clip-path裁剪图片用法
- 牛客网-数据结构笔试题目(四)-Powerful Ksenia问题解决方案(附源码)
- 大公司里怎样开发和部署前端代码
- webstorm使用技巧
- C++的三大特性之一继承
- 【汇编语言】多模块程序结构
- [BZOJ 2154] Crash的数字表格
- HRESULT:0x80040228 异常解决
- Windows10使用diskpart分区
- mbedtls 交叉编译
- 潇洒老师分享的小知识:注塑模具“压模”的原因和预防措施
- easyui获取图片路径_Easyui filebox(文件框)_EasyUI 插件
- 计算机的硬盘有几个分区,电脑硬盘分几个区合适,电脑硬盘怎么分区最合理?
- Java job interview:项目开发小组成员网站数据访问层设计
- java凑数问题,包子凑数——Java
- PC端本地存储方案,Windows和Mac双端通用方案
- 谷歌找邮箱插件,外贸人必备