構(gòu)造有效字符串的最少插入數(shù)
題目要求
解題思路
考慮abc的個(gè)數(shù)
假設(shè)答案有n個(gè)"abc"組成,那么需要插入的字符個(gè)數(shù)為 3 ? n ? l e n ( s ) 3*n - len(s) 3?n?len(s)。
對(duì)于相鄰的兩個(gè)字符x和y(x在y左側(cè)):文章來源:http://www.zghlxwxcb.cn/news/detail-799002.html
- 如果 x < y x<y x<y,那么x和y可以在同一個(gè)"abc"內(nèi),否則一定不在;
- 如果 x ≥ y x\ge y x≥y,那么x和y一定不可以在同一個(gè)"abc"內(nèi),
所以, n n n就是 x ≥ y x\ge y x≥y 的次數(shù)加1文章來源地址http://www.zghlxwxcb.cn/news/detail-799002.html
代碼
class Solution:
def addMinimum(self, s: str) -> int:
ans = ord(s[0]) - ord(s[-1]) + 2
for x, y in pairwise(map(ord, s)):
ans += (y - x + 2) % 3
return ans
復(fù)雜度分析
- 時(shí)間復(fù)雜度: O ( n ) O(n) O(n),其中 n n n為word的長(zhǎng)度
- 空間復(fù)雜度: O ( 1 ) O(1) O(1)
到了這里,關(guān)于算法第十七天-構(gòu)造有效字符串的最少插入數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!