LeetCode 2207. 字符串中最多数目的子字符串(前缀和)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 2207. 字符串中最多数目的子字符串(前缀和)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個下標從 0 開始的字符串 text 和另一個下標從 0 開始且長度為 2 的字符串 pattern ,兩者都只包含小寫英文字母。
你可以在 text 中任意位置插入 一個 字符,這個插入的字符必須是 pattern[0] 或者 pattern[1] 。注意,這個字符可以插入在 text 開頭或者結(jié)尾的位置。
請你返回插入一個字符后,text 中最多包含多少個等于 pattern 的 子序列 。
子序列 指的是將一個字符串刪除若干個字符后(也可以不刪除),剩余字符保持原本順序得到的字符串。
示例 1: 輸入:text = "abdcdbc", pattern = "ac" 輸出:4 解釋: 如果我們在 text[1] 和 text[2] 之間添加 pattern[0] = 'a' ,那么我們得到 "abadcdbc" 。那么 "ac" 作為子序列出現(xiàn) 4 次。 其他得到 4 個 "ac" 子序列的方案還有 "aabdcdbc" 和 "abdacdbc" 。 但是,"abdcadbc" ,"abdccdbc" 和 "abdcdbcc" 這些字符串雖然是可行的插入方案,但是只出現(xiàn)了 3 次 "ac" 子序列,所以不是最優(yōu)解。 可以證明插入一個字符后,無法得到超過 4 個 "ac" 子序列。示例 2: 輸入:text = "aabb", pattern = "ab" 輸出:6 解釋: 可以得到 6 個 "ab" 子序列的部分方案為 "aaabb" ,"aaabb" 和 "aabbb" 。提示: 1 <= text.length <= 10^5 pattern.length == 2 text 和 pattern 都只包含小寫英文字母。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/maximize-number-of-subsequences-in-a-string
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
- 首先可以求出每個位置左側(cè)的 0 字符、右側(cè)的 1 字符個數(shù)
- 接著求出不插入新字符的情況下有多少種子序列
- 再求出插入一個新字符會增加多少個子序列,兩者的和就是答案
76 ms 35.5 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 2207. 字符串中最多数目的子字符串(前缀和)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python web开发 Bootstr
- 下一篇: 流畅的Python 1. Python数