蓝桥杯官网练习题(翻硬币)

题目描述

小明正在玩一个"翻硬币"的游戏。

桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。

比如,可能情形是:**oo***oooo;

如果同时翻转左边的两个硬币,则变为:oooo***oooo。

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

我们约定:把翻动相邻的两个硬币叫做一步操作。

输入描述

两行等长的字符串,分别表示初始状态和要达到的目标状态。

每行的长度<1000。

输出描述

一个整数,表示最小操作步数。

输入输出样例

示例

输入

复制代码
**********
o****o****

输出

复制代码
5

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 64M
java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int ans=0;
        String str=scan.next();
        String str1=scan.next();
        char[] ch=str.toCharArray();
        char[] ch1=str1.toCharArray();
        for(int i=0;i<ch.length-1;i++){
          if(ch[i]!=ch1[i]){
            ch[i]=ch[i]=='*'?'o':'*';
            ch[i+1]=ch[i+1]=='*'?'o':'*';
            ans++;
          }
        }
        System.out.println(ans);
        scan.close();
    }
}
相关推荐
白云千载尽33 分钟前
leetcode 912.排序数组
算法·leetcode·职场和发展
哆啦刘小洋35 分钟前
Tips:预封装约束的状态定义
算法
代码充电宝36 分钟前
LeetCode 算法题【简单】290. 单词规律
java·算法·leetcode·职场和发展·哈希表
Juan_20121 小时前
P1040题解
c++·算法·动态规划·题解
Onesoft%J1ao1 小时前
C++竞赛递推算法-斐波那契数列常见题型与例题详解
c++·算法·动态规划·递推·信息学奥赛
以己之2 小时前
NC313 两个数组的交集
算法·哈希算法
Brookty2 小时前
【算法】前缀和
java·学习·算法·前缀和·动态规划
And_Ii2 小时前
LeetCode 3397. 执行操作后不同元素的最大数量
数据结构·算法·leetcode
额呃呃2 小时前
leetCode第33题
数据结构·算法·leetcode
隐语SecretFlow2 小时前
【隐语SecretFlow用户案例】亚信科技构建统一隐私计算框架探索实践
科技·算法·安全·隐私计算·隐私求交·开源隐私计算