2027 转换字符串的最少操作次数

2023-11-18

题目描述:
给你一个字符串 s ,由 n 个字符组成,每个字符不是 ‘X’ 就是 ‘O’ 。
一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 ‘O’ 。注意,如果字符已经是 ‘O’ ,只需要保持 不变 。
返回将 s 中所有字符均转换为 ‘O’ 需要执行的 最少 操作次数。

示例 1:
输入:s = “XXX”
输出:1
解释:XXX -> OOO
一次操作,选中全部 3 个字符,并将它们转换为 ‘O’ 。

示例 2:
输入:s = “XXOX”
输出:2
解释:XXOX -> OOOX -> OOOO
第一次操作,选择前 3 个字符,并将这些字符转换为 ‘O’ 。
然后,选中后 3 个字符,并执行转换。最终得到的字符串全由字符 ‘O’ 组成。

示例 3:
输入:s = “OOOO”
输出:0
解释:s 中不存在需要转换的 ‘X’ 。

提示:
3 <= s.length <= 1000
s[i] 为 ‘X’ 或 ‘O’

方法1:
主要思路:解题汇总链接
(1)贪心;
(2)按照题意,每个字符都需要变换,则从左到右进行遍历,找到一个字符X,就直接对其后的三个字符一起进行变换;

class Solution {
public:
    int minimumMoves(string s) {
        int res=0;
        for(int i=0;i<s.size();i++){
            if(s[i]=='X'){
                res++;
                i+=2;
            }
        }
        return res;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2027 转换字符串的最少操作次数 的相关文章

随机推荐

  • Stm32 一键下载电路详解

    文章目录 前言 一键下载 一键下载原理 硬件原理图 跳帽与启动 存储映射 串口下载程序由来 一键下载流程 通过 USB 控制机器复位握手 解读 前言 最近在又要折腾 stm32 了 所以翻出了角落里的开发板 先复习下怎么一键下载来着 一键下
  • linux中安装mysql时报错解决方案

    转载于http www cnblogs com xiaolang8762400 p 6950920 html 找了很久才找到 谢谢大神 本人需要找的问题主要是安装时出错的解决方法 本人的文件版本跟原创的版本有点不一样 需要哪个版本自行选择
  • 实战:从Mysql数据库frm文件中,提取表结构创建SQL语句

    需求 在某些特殊的场景下 例如你的mysql数据库无法启动 需要你将表的ibd文件拷贝到另一个数据库中 恢复业务数据库 恢复业务数据的前提 是你需要在另一个数据库中 创建好一模一样的表结构 这时你就需要从Mysql数据库的frm文件中 提取
  • Mysql查询日期timestamp格式的数据

    在Navicat中 时间戳 timestamp 格式的数据表现为 查询某一天的数据 SELECT FROM my table WHERE update time LIKE 2022 10 06 或是 SELECT FROM my table
  • 如何成功开展网络营销?

    企业如要将网上营销开展成功 则必须注意以下方面 1 准确 客观的市场定位 网上营销同传统的营销相比 其前期工作也包括准确客观的市场定位 网上营销与一般营销有较大的区别 因此其市场定位也有其独特的特点 如何准确客观地进行网上营销的市场定位 必
  • CentOS8更换阿里源及解决yum update报错问题

    CentOS更换阿里源 yum makecache提示错误 为 repo base 下载元数据失败 Cannot download repomd xml Cannot download repodata repomd xml All mir
  • GitHub的使用

    文章目录 一 通过实际操作学习Git 1 Git基本操作 2 分支操作 3 更改提交操作 4 推送至远程仓库 5 从远程仓库获取 6 帮助大家深入理解Git资料 二 工具栏 1 键盘快捷键 2 工具栏 3 控制面板 4 仓库 三 与GitH
  • vite插件介绍 - vite-plugin-meta-env

    vite插件介绍 vite plugin meta env a vite plugin define dynamic env variables in import meta env npm github 可以基于本仓库去开发自己的vite
  • 微信小程序怎么设置单个页面颜色/顶部栏颜色/tabBar颜色

    微信小程序怎么设置单个页面的背景颜色 这个其实很简单 看看酱茄小编是怎么操作的 在对应的json里面写入以下代码即可 单页页面的背景颜色设置方法 navigationBarBackgroundColor FFFFFF 小程序tabBar 底
  • 数据清洗---数据整合

    数据整合可以使用Pandas库中merge 函数合并数据集 import pandas as pd 建两个数据集 df1 DataFrame lkey b b a c data1 range 4 df2 DataFrame rkey a b
  • 写selenium常用到的js代码

    selenium可以运行JavaScript代码 可以用一些JavaScript来辅助编写Selelnium代码 1 scrollIntoView 向下拉滚动条 使得某元素可见 IWebElement element driver Find
  • tensorflow NameError: name ‘layers‘ is not defined解决办法

    错误代码 import tensorflow as tf net layers Dense 10 net build 4 10 net kernel NameError name layers is not defined 错误原因 ten
  • 如何使用jquery通过id值修改指定的input的value值

    如何使用jquery通过id值修改指定的input的value值 定义和用法 示例代码 改变动态id的input值 定义和用法 val 方法返回或设置被选元素的值 元素的值是通过 value 属性设置的 该方法大多用于 input 元素 如
  • ant design pro v5 动态路由

    ant design pro v5 动态菜单 1 添加模拟数据 2 添加request请求 3 修改app tsx文件 a 第一步修改getInitialState b 第二步修改layout 4 app tsx 完整代码 5 解决icon
  • qt : day 3

    1 完成登录框的按钮操作 并在登录成功后进行界面跳转 pro QT core gui texttospeech greaterThan QT MAJOR VERSION 4 QT widgets CONFIG c 11 The follow
  • python研究生专业_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!

    写在前面 考研在即 想多了解考研er的想法 就是去找学长学姐或者去网上搜索 贴吧就是一个好地方 而借助强大的工具可以快速从网络鱼龙混杂的信息中得到有价值的信息 虽然网上有很多爬取百度贴吧的教程和例子 但是贴吧规则更新快 目的不一样 爬取的内
  • 移动Web开发入门(四) -- 移动端调试

    文章目录 移动端调试 浏览器调试 进入控制台 进入浏览器模拟器 切换测试机型 添加测试机型 改变屏幕尺寸 改变DPR 改变网络情况 改变屏幕显示大小 横 竖屏切换 真机测试 扩展 远程调试工具 vorlon js 多终端调试工具 brows
  • sql注入之报错注入

    报错注入 报错注入在没法用union联合查询时用 但前提还是不能过滤一些关键的函数 报错注入就是利用了数据库的某些机制 人为地制造错误条件 使得查询结果能够出现在错误信息中 这里主要记录一下xpath语法错误和concat rand gro
  • JVM三大子系统之类加载子系统(二)

    前置说明 由于个人能力有限 下面文章会大量整理 引用其他人的文章 我个人主要把这篇文章当成是自己的学习笔记 通过前面的文章 我们知道了 一段java代码是如何运行的 1 编译 程序员编写的java文件 编译成 class文件 2 加载 JV
  • 2027 转换字符串的最少操作次数

    题目描述 给你一个字符串 s 由 n 个字符组成 每个字符不是 X 就是 O 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 O 注意 如果字符已经是 O 只需要保持 不变 返回将 s 中所有字符均转换为 O 需