代码编织梦想

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个字符串 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'

解题思路:

* 解题思路:
* 遍历字符串,如果为X则i+=3,并且num++;
* 否则i++。

代码:

public class Solution2027 {

    public int minimumMoves(String s) {

        char[] chars = s.toCharArray();
        int num = 0;
        for (int i = 0; i < chars.length; ) {
            char aChar = chars[i];
            if (aChar == 'X') {
                chars[i] = 'O';
                if (i < chars.length - 1) {
                    chars[i + 1] = '0';
                }
                if (i < chars.length - 2) {
                    chars[i + 2] = '0';
                }
                i = i + 3;
                num++;
                continue;
            }
            i++;
        }
        return num;
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/rzleilei/article/details/128451760

每天一道leetcode-----使用最少的操作将一个字符串转换成另一个字符串,只有插入,删除,替换三种操作_一个程序渣渣的小后院的博客-爱代码爱编程

Edit Distance 原题链接Edit Distance 题目要求,输入两个字符串word1和word2,计算可以将word1转换成word2的最小的操作次数,可以执行的操作如下,每个操作算作1次 将word

字符串最小变换次数——动态规划__jzwen的博客-爱代码爱编程_字符串替换最小次数

感觉自己算法太菜了。woc,想找一个算法大佬,给他做舔狗。 package offer; /** * 动态规划求解-将字符串A变换为字符串B 所用的最少字符操作次数 */ public class Day0418_demo01 { public static int fun(String s1 , String s2){

LeetCode 题解 | 1297.子串的最大出现次数-爱代码爱编程

点击上方蓝字设为星标 下面开始今天的学习~ 今天分享的题目来源于 LeetCode 第 1297 题:子串的最大出现次数。 题目描述 给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数: 子串中不同字母的数目必须小于等于 maxLetters 。子串的长度必须大于等于 minSize 且小于等于 maxS

2517 最少01翻转次数(前后缀和经典例题)-爱代码爱编程

题目描述: 小b有一个01序列,她每次可以翻转一个元素,即将该元素从0变1或者从1变0。现在她希望序列不降,求最少翻转次数。 输入 第一行输入一个数n,其中1≤n≤20000; 第二行输入一个由‘0’和‘1’组成的字符串 输出 输出一个非负整数,表示翻转次数输入样例 6 010110输出样例 2解题思路分析: 首先,他是一个01序列对吧 输入是这样的,没

leetcode 72. 编辑距离 经典动态规划(字符串的最少变化次数)-爱代码爱编程

编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = “horse”, word2 = “ros” 输出:3 解释: horse -> rorse (将 ‘h’ 替

阿里笔试:对于一个01字符串,每次只能任意交换两个元素,或者把0变成1,或者把1变成0,或者反转整个字符串。那么从A串变成B串至少需要多少步。-爱代码爱编程

题目:对于一个01字符串,每次只能任意交换两个元素,或者把0变成1,或者把1变成0,或者反转整个字符串。那么从A串变成B串至少需要多少步。 例子,1111000变成0010011至少需要3步。 思路1:首先可以分成两种情况,一种是反转,一种是不翻转。那么如何决定到底反转不翻转?可以比较不翻转时相同的位数,和翻转之后相同的位数,如果不翻转之前相同的位数多

LeetCode 题解 —— 5551. 使字符串平衡的最少删除次数-爱代码爱编程

题目相关 题目链接 LeetCode 中国,https://leetcode-cn.com/contest/biweekly-contest-39/problems/minimum-deletions-to-make-string-balanced/。 Problem Statement 给你一个字符串 s ,它仅包含字符 'a' 和 'b'​​​

[LeetCode] 使字符串有序的最少操作次数 思维+康拓展开+组合数学-爱代码爱编程

题目链接:使字符串有序的最小操作次数 题面: 思路: 首先要想到题面所述的操作其实是将s转化为字典序恰好比当前排列小的一个排列(这点很关键)。 那么问题就转化为当前排列在s的所有字符组成的全排列中的次序问题。 自然我们会想到用康拓展开,但由于s中有重复出现的字符,所以我们还需要用到多重集的全排列公式。此外由于存在取模操作,又存在除法所以还需要

Leetcode 5760:构成交替字符串需要的最小交换次数-爱代码爱编程

题目描述 给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。 交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 "010" 和 "1010" 属于交替字符串,但 "0100" 不是。 任意两个字符都可以进行交换,不必相邻 。   示例 1

LeetCode 1864. 构成交替字符串需要的最小交换次数-爱代码爱编程

LeetCode 1864. 构成交替字符串需要的最小交换次数 题意 给一个二进制字符串s,请将其转化为一个交替字符串,返回转化所需的最小字符交换次数, 如果无法完成转化,返回-1。交替字符串的定义:相邻字符之间不存在相等情况的字符串。例如:“010”和“1010”是交替字符串,但“0100”不是。任意两个字符都可以进行交换,不必相邻 。 分析 1

leedcode04:转换字符串的最少操作次数-爱代码爱编程

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

2027. 转换字符串的最少操作次数-爱代码爱编程

地址: 力扣https://leetcode-cn.com/problems/minimum-moves-to-convert-string/ 题目: 给你一个字符串 s ,由 n 个字符组成,每个字符不是 'X' 就是 'O' 。 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 'O' 。注意,如果字符已经是 'O'

力扣(202.454)补9.18-爱代码爱编程

202.快乐数 不会。又要用到数学的思想,你要学会去分析。🙁  根据上表你需要知道,一个很大的数,经过快乐运算,不可能会一直增大,一定会受到限制。 class Solution {     private int getNext(int n) {         int totalSum = 0;         while (n

leetcode 234. palindrome linked list-爱代码爱编程

Given the head of a singly linked list, return true if it is a  palindrome  or false otherwise. Example 1: Input: head = [1,2,2,1] Output: true   Example 2: Input: head

775. 全局倒置与局部倒置(难度:中等)-爱代码爱编程

题目描述:https://leetcode.cn/problems/global-and-local-inversions/ 题目描述: 给你一个长度为 n 的整数数组 nums ,表示由范围 [0, n -

leetcode 96. 不同的二叉搜索树-爱代码爱编程

LeetCode 96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3 输出:5 示例 2: 输入:n = 1 输出:1 提示: 1 <= n <=