日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 2207. 字符串中最多数目的子字符串(前缀和)

發布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 2207. 字符串中最多数目的子字符串(前缀和) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一個下標從 0 開始的字符串 text 和另一個下標從 0 開始且長度為 2 的字符串 pattern ,兩者都只包含小寫英文字母。

你可以在 text 中任意位置插入 一個 字符,這個插入的字符必須是 pattern[0] 或者 pattern[1] 。注意,這個字符可以插入在 text 開頭或者結尾的位置。

請你返回插入一個字符后,text 中最多包含多少個等于 pattern 的 子序列 。

子序列 指的是將一個字符串刪除若干個字符后(也可以不刪除),剩余字符保持原本順序得到的字符串。

示例 1: 輸入:text = "abdcdbc", pattern = "ac" 輸出:4 解釋: 如果我們在 text[1] 和 text[2] 之間添加 pattern[0] = 'a' ,那么我們得到 "abadcdbc" 。那么 "ac" 作為子序列出現 4 次。 其他得到 4"ac" 子序列的方案還有 "aabdcdbc""abdacdbc" 。 但是,"abdcadbc""abdccdbc""abdcdbcc" 這些字符串雖然是可行的插入方案,但是只出現了 3"ac" 子序列,所以不是最優解。 可以證明插入一個字符后,無法得到超過 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
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 首先可以求出每個位置左側的 0 字符、右側的 1 字符個數
  • 接著求出不插入新字符的情況下有多少種子序列
  • 再求出插入一個新字符會增加多少個子序列,兩者的和就是答案
class Solution { public:long long maximumSubsequenceCount(string text, string pattern) {int n = text.size(), delta = 0;long long ans = 0;vector<int> left0(n), right1(n);for(int i = 0; i < n; ++i)left0[i] = (i>0 ? left0[i-1] : 0) + (text[i]==pattern[0]);for(int i = n-1; i >= 0; --i)right1[i] = (i<n-1 ? right1[i+1] : 0) + (text[i]==pattern[1]);for(int i = 0; i < n; ++i){if(text[i] == pattern[1])ans += i>0 ? left0[i-1] : 0;//原有多少種子序列delta = max(delta, max(right1[i], left0[i]));// 增加字符后最大的可能}return ans+delta;} };

76 ms 35.5 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 2207. 字符串中最多数目的子字符串(前缀和)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。