【字符串】【2024-01-11】
思路
如果答案由 t 个 “abc” 组成,那么需要插入字符个数为 3t - n。
如何求 t ?
我们考虑相邻的两个字符,如果前一个字符大于或者等于后一个字符(对应的 ASCII 码比较),则 t = t + 1
,初始的 t = 1
。
算法
class Solution {
public:
int addMinimum(string word) {
int t = 1;
int n = word.size();
for (int i = 1; i < n; ++i) {
t += word[i-1] >= word[i];
}
return 3*t - n;
}
};
复杂度分析
时间复杂度:
O
(
n
)
O(n)
O(n),
n
n
n 为字符串 word
的长度。
空间复杂度: O ( 1 ) O(1) O(1)。
如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。
如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。
最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。