力扣 -- 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;
    }
};
相关推荐
lengxuenong1 分钟前
潍坊一中第四届编程挑战赛(初赛)题解
算法
wkd_0077 分钟前
【C++ | STL】std::vector 复制的几个方法总结
c++·stl·std vector·复制vector·vector复制
松涛和鸣9 分钟前
25、数据结构:树与二叉树的概念、特性及递归实现
linux·开发语言·网络·数据结构·算法
莫物13 分钟前
Java后端请求不同环境下的同一接口,有的环境会出现乱码问题
java·开发语言
MM_MS18 分钟前
SQL Server数据库和Visual Studio (C#)联合编程
开发语言·数据库·sqlserver·c#·visual studio
Han.miracle19 分钟前
数据结构--初始数据结构
算法·集合·大o表示法
List<String> error_P20 分钟前
C语言联合体:内存共享的妙用
算法·联合体
little~钰31 分钟前
可持久化线段树和标记永久化
算法
惺忪979837 分钟前
Qt C++11/14/17 新特性大全详解
开发语言·c++
Pacify_The_North42 分钟前
【C++11(二)】可变参数模板和 lambda表达式
java·开发语言·c++