河南网站优化推广,怎么自己做一个网站平台,品牌的手机网站制作,嘉兴seo网站建设费用LeetCode
2645.构造有效字符串的最少插入数
2645. 构造有效字符串的最少插入数 - 力扣#xff08;LeetCode#xff09;
题目描述
给你一个字符串 word #xff0c;你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次#xff0c;返回使 word 有效 需要插入的最少字…LeetCode
2645.构造有效字符串的最少插入数
2645. 构造有效字符串的最少插入数 - 力扣LeetCode
题目描述
给你一个字符串 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 50word 仅由字母 “a”、“b” 和 “c” 组成。
思路
动态规划 力扣官方题解 链接https://leetcode.cn/problems/minimum-additions-to-make-valid-string/solutions/2590673/gou-zao-you-xiao-zi-fu-chuan-de-zui-xiao-vfaf/ 代码
C
class Solution {
public:int addMinimum(string word) {int n word.size();vectorint 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];}
};Java
class Solution {public int addMinimum(String word) {int n word.length();int[] d new int[n 1];for(int i 1; i n; i){d[i] d[i - 1] 2;if(i 1 word.charAt(i - 1) word.charAt(i - 2)){d[i] d[i - 1] - 1;}}return d[n];}
}