力扣 -- 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;
    }
};
相关推荐
执笔画流年呀6 分钟前
计算机是如何⼯作的
linux·开发语言·python
weixin_520649878 分钟前
C#闭包知识点详解
开发语言·c#
东北甜妹12 分钟前
Redis Cluster 操作命令
java·开发语言
cwplh12 分钟前
平衡树学习笔记
数据结构·笔记·学习·算法
花间相见14 分钟前
【大模型微调与部署01】—— ms-swift-3.12入门:安装、快速上手
开发语言·ios·swift
wen__xvn20 分钟前
天梯赛L2刷题(也就写写水题骗骗自己了)
算法
techdashen22 分钟前
Rust 正式成立 Types Team:类型系统终于有了专属团队
开发语言·后端·rust
EllinY23 分钟前
扩展欧几里得算法 exgcd 详解
c++·笔记·数学·算法·exgcd
jiayong2325 分钟前
第 17 课:任务选择与批量操作
开发语言·前端·javascript·vue.js·学习
爱编码的小八嘎32 分钟前
C语言完美演绎8-8
c语言