1208. 翻硬币

news2025/1/19 16:59:35

题目:

1208. 翻硬币 - AcWing题库

思路:

1.对于要求从A变化到B的这类题,可以采用开关控制的方法。

2.一次翻转连续两个硬币,求origin变为result 最少需要翻转多少次。我们在origin的两个硬币中间放一个开关,开关变换则开关两侧的两个硬币都翻转。可以从第一个硬币的位置开始,若origin[0]和result[0]不相同则变换一次origin[0]与origin[1]之间的开关(相同则不动开关),从而确保origin[0]和result[0]相等,依次类推,由origin两硬币间的开关确保控制origin左边的硬币正反面与result对应位置的正反面相同。(这里默认最后一个硬币正反面一定相同,否则无解)

3.需要从origin[0]遍历到origin[n-1],时间复杂度为O(n)。

代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
using namespace std;

int i, ans = 0;//记录有多少个开关发生了变换(每个开关只会变换一次)
string origin, result;

void turn(int x) //翻转函数
{
    if (origin[x] == '*')origin[x] = 'o';
    else origin[x] = '*';
}

int main()
{
    cin >> origin >> result;
    for (i = 0; i < origin.size()-1; i++) {
        if (origin[i] != result[i]) {
            turn(i); turn(i + 1);
            ans++;
        }
    }
    cout << ans;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1107212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录第四十三天|343. 整数拆分 ● 96.不同的二叉搜索树

343.整数拆分 题目&#xff1a; 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 …

Linux:命令行参数和环境变量

文章目录 命令行参数环境变量环境变量的概念常见的环境变量PATH 环境变量表本地变量和环境变量命令分类 本篇主要解决以下问题&#xff1a; 什么是命令行参数命令行参数有什么用环境变量是什么环境变量存在的意义 命令行参数 在学习C语言中&#xff0c;对于main函数当初的写…

Spring framework Day 23:容器事件

前言 容器事件是 Spring Framework 中的一个重要概念&#xff0c;它提供了一种机制&#xff0c;使我们能够更好地了解和响应 Spring 容器中发生的各种事件。通过容器事件&#xff0c;我们可以在特定的时间点监听和处理容器中的各种状态变化、操作和事件触发&#xff0c;以实现…

【网络编程】多路转接之select、poll、epoll

目录 一、如何进行高效的IO 以read/recv为例 二、五种IO模型 三、常见的高级IO 四、非阻塞IO 1、recv和send自带的非阻塞IO 2、可以将文件描述符设为非阻塞 2.1open自带的非阻塞IO 2.2通过fcntl函数将一个文件描述符设置为非阻塞 2.3非阻塞IO的返回值判定 三、多路转…

网络安全(黑客)自学方向

每年报考网络安全专业的人数很多&#xff0c;但不少同学听说千万别学网络安全&#xff0c;害怕网络安全专业很难就业。下面就带大家深入了解一下网络安全专业毕业后可以干什么&#xff0c;包括网络安全专业的就业前景和方向等。 随着信息化时代的到来&#xff0c;网络安全行业…

Intellij IDEA 运行时报 Command line is too long

文章目录 前言解决方法2020.3 之前的版本2020.3 以及之后版本 前言 有时候使用Intellij IDE 使用项目时&#xff0c;会出现“Command line is too long” 错误&#xff0c;查了很多资料才找到解决方案。为解决该错误颇费周折&#xff0c;写下此文让同道中人少走弯路。 解决方法…

ROL,PIT,YAW

简言之&#xff0c; roll是旋转角&#xff0c;是“翻滚”。绕X轴旋转,ROL pitch是俯仰角&#xff0c;是“点头“。绕Y轴旋转,PIT yaw是偏航角&#xff0c;是‘摇头“。绕Z轴旋转,YAW

软考考试时间已出!采用连考形式!

2023年下半年计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试批次安排已出&#xff01;下面是具体的考试安排。 通知原文如下&#xff1a;↓↓↓ 按照《2023年下半年计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试有关工作调整的通告》&#x…

代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串

代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串 文章链接&#xff1a;组合总和 组合总和II 分割回文串 视频链接&#xff1a;组合总和 组合总和II 分割回文串 目录 代码随想录算法训练营第二十六天 …

leetcode 5

leetcode 5 题目是通过枚举字符串&#xff0c;然后判断是否子字符串满足回文。 引用传递和值传递相比&#xff0c;引用传递可以减少内存空间。提高代码运行效率。 https://www.cnblogs.com/yanlingyin/archive/2011/12/07/2278961.html

ZKP4.1 SNARKs via Interactive Proofs (Justin Thaler)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 4: SNARKs via Interactive Proofs (Justin Thaler) 4.1 Interactive Proofs: Motivation and Model Interactive Proofs P solves problem, tells V the answer. Then they have a conversation.P’s goal: convince V the …

微信小程序一键获取位置

需求 有个表单需要一键获取对应位置 并显示出来效果如下&#xff1a; 点击一键获取获取对应位置 显示在 picker 默认选中 前端 代码如下: <view class"box_7 {{ showChange1? change-style: }}"><view class"box_11"><view class"…

Excel·VBA单元格区域数据对比差异标记颜色

之前的一篇博客《ExcelVBA单元格重复值标记颜色》&#xff0c;是对重复的整行标记颜色 而本文是按行对比2个单元格区域的数据&#xff0c;并对有差异的区域&#xff08;一个单元格区域有的&#xff0c;而另一个单元格区域没有的&#xff09;标记颜色&#xff0c;且只要存在任意…

杨辉三角按列求和

假设求杨辉三角这一列 我们考虑这个格子&#xff1a; 然后对其不断展开 综上&#xff1a; ∑ i 0 n ( i k ) ( n 1 k 1 ) \sum_{i0}^n\binom i k\binom {n1}{k1} i0∑n​(ki​)(k1n1​) ∑ i l r ( i k ) ( r 1 k 1 ) − ( l k 1 ) \sum_{il}^r\binom i k\binom{r1}{k…

Kafka存取原理与实现分析,打破面试难关

系列文章目录 上手第一关&#xff0c;手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么&#xff0c;以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析&#xff0c;打破面试难关 系列文章目录一、主题与分区1. 模型…

每日一博 - Code如何被发布到生产环境

文章目录 概述Flow 概述 关于公司如何将代码发布到生产环境的是一个什么样的流程呢&#xff1f; 下面的图示展示了典型的工作流程。 步骤 1&#xff1a;流程始于产品负责人根据需求创建用户故事。步骤 2&#xff1a;开发团队从积压工作中挑选用户故事&#xff0c;将它们放入…

Flutter——最详细(CustomScrollView)使用教程

CustomScrollView简介 创建一个 [ScrollView]&#xff0c;该视图使用薄片创建自定义滚动效果。 [SliverList]&#xff0c;这是一个显示线性子项列表的银子列表。 [SliverFixedExtentList]&#xff0c;这是一种更高效的薄片&#xff0c;它显示沿滚动轴具有相同范围的子级的线性列…

pycharm操作git

pycharm操作git 之前用命令做的所有操作&#xff0c;使用pychrm点点就可以完成 克隆代码 上方工具栏Git ⇢ \dashrightarrow ⇢ Clone ⇢ \dashrightarrow ⇢ 填写地址&#xff08;http、ssh&#xff09; 提交到暂存区&#xff0c;提交到版本库&#xff0c;推送到远程 直接…

IOday7

A进程 #include <head.h> int main(int argc, const char *argv[]) {pid_t cpidfork();if(cpid>0)//父进程向管道文件2写{ int wfd;if((wfdopen("./myfifo2",O_WRONLY))-1){ERR_MSG("open");return -1;} char buf[128]"";while(1){bze…

ps或游戏提示d3dcompiler_47.dll缺失怎么修复?常见的修复方法总结

在当今这个信息化的时代&#xff0c;计算机已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着软件的不断更新和升级&#xff0c;一些技术问题也时常困扰着我们。其中&#xff0c;d3dcompiler_47.dll缺失就是一个常见的问题。本文将详细介绍五种修复方案&#xf…