力扣 -- 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;
    }
};
相关推荐
进击的荆棘1 小时前
C++起始之路——哈希表的实现
数据结构·c++·散列表·哈希
卷心菜狗1 小时前
Python进阶--迭代器
开发语言·python
jr-create(•̀⌄•́)1 小时前
LeakyRelu链式法则
开发语言·python·深度学习
FakeOccupational5 小时前
【数学 密码学】量子通信:光的偏振&极化的量子不确定性特性 + 量子密钥分发 BB84算法步骤
算法·密码学
ZhengEnCi7 小时前
S10-蓝桥杯 17822 乐乐的积木塔
算法
贾斯汀玛尔斯7 小时前
每天学一个算法--拓扑排序(Topological Sort)
算法·深度优先
t***5447 小时前
如何配置Orwell Dev-C++使用Clang
开发语言·c++
大龄程序员狗哥7 小时前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
exp_add37 小时前
质数相关知识
算法
CoderCodingNo7 小时前
【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理
开发语言·c++