力扣 -- 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;
    }
};
相关推荐
暮冬-  Gentle°5 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
txinyu的博客6 分钟前
解析muduo源码之 HttpRequest.h
c++
皙然7 分钟前
吃透进程与线程:从概念到实战,破解并发编程核心难题
java·开发语言
2401_879693877 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
地平线开发者7 分钟前
【地平线J6工具链入门教程】J5到J6算法部署迁移指南
人工智能·算法·自动驾驶·汽车
冬夜戏雪8 分钟前
HashMAP底层原理和扰动hash的例子
java·开发语言
咸鱼2.08 分钟前
【java入门到放弃】计算机网络
java·开发语言·计算机网络
王璐WL10 分钟前
【c++】隐藏的this指针
c++
木井巳11 分钟前
【递归算法】找出所有子集的异或总和再求和
java·算法·leetcode·决策树·深度优先
froginwe1114 分钟前
SVN 创建版本库
开发语言