LC 2645. 构造有效字符串的最少插入数
2645. 构造有效字符串的最少插入数
难度:中等
给你一个字符串
word
,你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次,返回使word
有效 需要插入的最少字母数。如果字符串可以由 “abc” 串联多次得到,则认为该字符串 有效 。
提示:
1 <= word.length <= 50
word
仅由字母 “a”、“b” 和 “c” 组成。
双指针
i
指向word
,j
指向"abc"
我们从前往后扫,和"abc"
进行匹配,如果匹配不上那么答案就加1,j一直往后面走,注意对3取模,以及最后末尾的处理
class Solution {
public:int addMinimum(string word) {string s = "abc";int res = 0, j = 0;for (int i = 0; i < word.size(); j ++) {j %= 3;if (word[i] == s[j]) i ++;else res ++;}return res + 3 - j;}
};
时间复杂度: O ( n ) O(n) O(n)
结束了