力扣 -- 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;
    }
};
相关推荐
TimberWill11 小时前
哈希-03-字母异位词分组
算法·哈希算法
你好音视频11 小时前
FFmpeg FLV编码器原理深度解析
c++·ffmpeg·音视频
轻微的风格艾丝凡12 小时前
matlab推导QPR离散公式并验证
算法·matlab·谐振
鹿野素材屋12 小时前
帧同步场景下的确定性随机数生成:基于时间戳的固定种子设计与实践
java·开发语言
小真zzz12 小时前
当前集成Nano Banana Pro模型的AI PPT工具排名与分析
开发语言·人工智能·ai·powerpoint·ppt
float_六七12 小时前
Java JAR包运行与反编译全攻略
java·开发语言·jar
Cowboy hat12 小时前
数据结构基础(一)—— 什么是数据结构?
数据结构
Qt学视觉12 小时前
PaddlePaddle-2wget下载安装
c++·人工智能·paddlepaddle
老秦包你会12 小时前
C++进阶------C++的类型转换
java·开发语言·c++
星辰烈龙12 小时前
黑马程序员JavaSE基础加强d2
java·开发语言