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)相关推荐

  1. 蓝桥杯历届试题:翻硬币——Java实现

    题目: 以下是输入输出格式: 这里我也没多想,看到了输入的字符串不是固定的,但是我们需要对其进行元素的操作,马上就想到了Java中字符串和字符数组之间的转换--toCharArray()方法. 以下是 ...

  2. 蓝桥 历届试题 矩阵翻硬币 JAVA

    问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转. 其 ...

  3. DOTA2翻硬币网站规则java版本

    DOTA2翻硬币网站规则java版本 package com.yagou.yggx.provider.ygst.task;import java.math.BigDecimal; import jav ...

  4. 算法技巧-翻硬币问题java

    1902 翻硬币 有N枚硬币,编号1到N.现在有如下4种操作: 1.翻转所有硬币,即正的变成反的,反的变成正的. 2.翻转所有奇数号的硬币. 3.翻转所有偶数号的硬币. 4.翻转所有编号形式为 3M+ ...

  5. 浅谈 翻硬币游戏【Nim博弈】

    ACM博客_kuangbin 博弈-翻硬币游戏 hihoCoder 1172 : 博弈游戏·Nim游戏·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Alice和B ...

  6. 蓝桥杯历届试题----矩阵翻硬币

    矩阵翻硬币 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵.随后,小明对每一个硬币分别进行一次 Q 操作.对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进 ...

  7. 蓝桥杯试题:矩阵翻硬币

    矩阵翻硬币 这是蓝桥杯的一道练习题,题目如下: 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所 ...

  8. AcWing 1208. 翻硬币

    1208. 翻硬币 题意: 给定一个初始字符串(只含*和o字符) 给定一个目标字符串(只含*和o字符) 翻转初始字符串,每次会同时翻转其相邻的两个字符 求初始字符串翻转到目标字符串的最小翻转次数 输入 ...

  9. 蓝桥杯:翻硬币(贪心)

    历届试题 翻硬币   时间限制:1.0s   内存限制:256.0MB 问题描述 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反 ...

最新文章

  1. Mozilla公布WebVR API标准草案
  2. 【ACM】杭电OJ 2027
  3. java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置...
  4. css 剪辑图片_CSS中的clip-path裁剪图片用法
  5. 牛客网-数据结构笔试题目(四)-Powerful Ksenia问题解决方案(附源码)
  6. 大公司里怎样开发和部署前端代码
  7. webstorm使用技巧
  8. C++的三大特性之一继承
  9. 【汇编语言】多模块程序结构
  10. [BZOJ 2154] Crash的数字表格
  11. HRESULT:0x80040228 异常解决
  12. Windows10使用diskpart分区
  13. mbedtls 交叉编译
  14. 潇洒老师分享的小知识:注塑模具“压模”的原因和预防措施
  15. easyui获取图片路径_Easyui filebox(文件框)_EasyUI 插件
  16. 计算机的硬盘有几个分区,电脑硬盘分几个区合适,电脑硬盘怎么分区最合理?
  17. Java job interview:项目开发小组成员网站数据访问层设计
  18. java凑数问题,包子凑数——Java
  19. PC端本地存储方案,Windows和Mac双端通用方案
  20. 谷歌找邮箱插件,外贸人必备

热门文章

  1. 易度文档管理系统-功能试用体验
  2. Win10环境下的Ubuntu安装与配置
  3. jexus docker
  4. 工具武装的前端开发工程师 1
  5. Shopify卖家:分享做社交媒体营销的几个技巧!
  6. 如何安装chrome wiz笔记扩展
  7. PT report_timing
  8. vs2017配置opencv详细教程
  9. 三星android 7.0 root,三星G9350 7.0 root教程_三星G9350获取7.0系统的root权限
  10. Python描述 LeetCode 57. 插入区间