力扣 -- 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;
    }
};
相关推荐
C雨后彩虹2 分钟前
斗地主之顺子
java·数据结构·算法·华为·面试
CC.GG10 分钟前
【C++】AVL树
java·开发语言·c++
墨上烟雨14 分钟前
Pandas 数据结构 - Series
数据结构·pandas
鸽鸽程序猿15 分钟前
【刷题册】二
算法
CoderCodingNo24 分钟前
【GESP】C++四级真题 luogu-B4416 [GESP202509 四级] 最长连续段
开发语言·c++·算法
xjxijd24 分钟前
工业元宇宙 IDC 支撑:数字孪生算法 + 边缘服务器,生产调度响应速度提 3 倍
运维·服务器·算法
a程序小傲27 分钟前
京东Java面试被问:Fork/Join框架的使用场景
java·开发语言·后端·postgresql·面试·职场和发展
⑩-31 分钟前
Java四种线程创建方式
java·开发语言
月光在发光32 分钟前
22_GDB调试记录(未完成)
java·开发语言
222you33 分钟前
SpringAOP的介绍和入门
java·开发语言·spring