力扣 -- 467. 环绕字符串中唯一的子字符串

一、题目

二、解题步骤

下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。

三、参考代码

cpp 复制代码
class Solution {
public:
    int findSubstringInWraproundString(string s) {
        int n=s.size();
        vector<int> dp(n,1);
        int ret=0;
        for(int i=1;i<n;i++)
        {
            if(s[i]==s[i-1]+1||(s[i-1]=='z'&&s[i]=='a'))
            {
                dp[i]+=dp[i-1];
            }
        }

        //去重
        int arr[26]={0};
        for(int i=0;i<n;i++)
        {
            arr[s[i]-'a']=max(dp[i],arr[s[i]-'a']);
        }
        for(const auto& e:arr)
        {
            ret+=e;
        }
        return ret;
    }
};
相关推荐
stolentime几秒前
SOS DP学习笔记
c++·笔记·学习·算法·贪心算法·动态规划·二进制
文丑颜不良啊1 分钟前
LeetCode651~675题目解析
java·leetcode
水母量化5 分钟前
量化收益率计算别混用:算术均值、几何均值与对数收益
算法·均值算法·量化交易
轻舟技术A6 分钟前
Rust 重写 Pi:会话启动耗时降 91%,就绪内存少 78%
开发语言·后端·rust
用户76241175670525 分钟前
第四章 流程控制结构
c++
Jack N26 分钟前
【Strapi 系列之五】前端怎么接?Next.js + Tailwind 拉取 Strapi 数据(含代码)
开发语言·前端·javascript·strapi
Xin77032 分钟前
LeetCode 78. 子集(回溯法)
leetcode
xunberg36 分钟前
【生命科学 Agent】推理平台(三)
算法·程序员·架构
INGNIGHT36 分钟前
151 · 买卖股票的最佳时机 III(序列dp)
数据结构·算法·leetcode