首页 > 其他分享 >2645. 构造有效字符串的最少插入数

2645. 构造有效字符串的最少插入数

时间:2024-01-11 22:33:48浏览次数:31  
标签:word 有效 示例 int 2645 插入 字符串

难度:中等
给你一个字符串 word ,你可以向其中任何位置插入 "a"、"b" 或 "c" 任意次,返回使 word 有效 需要插入的最少字母数。

如果字符串可以由 "abc" 串联多次得到,则认为该字符串 有效 。

示例 1:

输入:word = "b"
输出:2
解释:在 "b" 之前插入 "a" ,在 "b" 之后插入 "c" 可以得到有效字符串 "abc" 。
示例 2:

输入:word = "aaa"
输出:6
解释:在每个 "a" 之后依次插入 "b" 和 "c" 可以得到有效字符串 "abcabcabc" 。
示例 3:

输入:word = "abc"
输出:0
解释:word 已经是有效字符串,不需要进行修改。

提示:
1 <= word.length <= 50
word 仅由字母 "a"、"b" 和 "c" 组成。

题解:方法一:考虑相邻字母

image

class Solution {
public:
    int addMinimum(string s) {
        int ans = s[0] + 2 - s.back();
        for (int i = 1; i < s.length(); i++) {
            ans += (s[i] + 2 - s[i - 1]) % 3;
        }
        return ans;
    }
};

方法二:动态规划
image

class Solution {
public:
    int addMinimum(string word) {
        int n = word.size();
        vector<int> d(n + 1);
        for (int i = 1; i <= n; i++) {
            d[i] = d[i - 1] + 2;
            if (i > 1 && word[i - 1] > word[i - 2]) {
                d[i] = d[i - 1] - 1;
            }
        }
        return d[n];
    }
};

标签:word,有效,示例,int,2645,插入,字符串
From: https://www.cnblogs.com/xushuwuxingqu/p/17959679

相关文章

  • 如何使用Python实现字符串反转
     在Python编程中,我们可能需要将字符串反转。这可以通过使用Python内置函数或自定义函数来实现。本文将向您介绍如何使用Python语言中的方法和技巧来反转字符串。 步骤: 以下是实现字符串反转的步骤: 1.定义一个字符串。 2.使用切片`[::-1]`反转字符串。 3.使用循环迭代,将原始......
  • Python中查找字符串某个字符最常用的方法!
    在Python语言中,查找字符串中某个字符是非常普通且常见的操作之一,那么Python如何查找字符串中某个字符?可以使用的方法有很多种,以下是详细内容介绍。1、使用in关键字在Python中,可以使用in关键字来查找一个字符串是否包含某个字符,具体代码如下:```pythons="Hell......
  • Mysql 插入数据忽略已存在数据
    MySQL的INSERTIGNOREINTO语句用于向表中插入数据,如果数据已经存在,则忽略插入操作而不报错。以下是INSERTIGNOREINTO语句的基本语法:INSERTIGNOREINTOtable_name(column1,column2,...)VALUES(value1,value2,...);这里的table_name是要插入数据的表名,(column1,colu......
  • lc 2645. 构造有效字符串的最少插入数
    给你一个字符串word,你可以向其中任何位置插入"a"、"b"或"c"任意次,返回使word有效需要插入的最少字母数。如果字符串可以由"abc"串联多次得到,则认为该字符串有效。样例1输入:word="b"输出:2解释:在"b"之前插入"a",在"b"之后插入"c"可以得到有......
  • (△△△)给定 n 个字符串,请对 n 个字符串按照字典序排列。 数据范围: 1 \le n \le 100
    描述给定n个字符串,请对n个字符串按照字典序排列。数据范围:1\len\le1000\1≤n≤1000,字符串长度满足1\lelen\le100\1≤len≤100输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据......
  • python第三节:Str字符串类型(3)
    str.index(sub[, start[, end]])类似于 find(),但在找不到子字符串时会引发 ValueError。例子:str1='mynameisjack!'print(str1.index('i'))print(str1.index('b'))结果:Traceback(mostrecentcalllast): File"D:/pythonProject/test/test2024011......
  • 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆
    描述输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001数据范围:0\len\le2^{30}-1\0≤n≤230−1输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出点击查看代码#include<i......
  • js 字符串处理函数
    length、charAt()、charCodeAt()和fromCharCode()返回的结果都跟预期是一样的。这是因为在这个范围内,每个字符都是用16位表示的,而这几个方法也都基于16位码元完成操作。只要字符编码大小与码元大小一一对应,这些方法就能如期工作。这个对应关系在扩展到Unicode增补字符平面......
  • 如何在网站中使用Highcharts插入漂亮的图表
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • python第三节:Str字符串类型(2)
    str.format(*args, **kwargs)执行字符串格式化操作。语法:点号前面是一个带槽(由大括号表示)的字符串,字符串里面可以设置各种参数和格式控制标记,后面是format和替换的字符串。{参数序号:格式控制标记}如下六个按照顺序使用。:填空对齐宽度逗号精度类型冒号用于填充的单个字符<左对齐>......