动态规划子数组系列一>环绕字符串中唯一的子字符串

题目:


解析:


代码:

java 复制代码
 public int findSubstringInWraproundString(String ss) {
        int n =  ss.length();
        int[] dp = new int[n];
        char[] s = ss.toCharArray();
        for(int i = 0; i < n; i++) dp[i] = 1;
        for(int i = 1; i < n; i++){
            if(s[i - 1] + 1 == s[i] || (s[i - 1] == 'z' && s[i] == 'a'))
                dp[i] += dp[i-1];
        }

        //去重:把dp表中的字串重复的,只留最长的字串(hash表来建立映射关系)
        int[] hash = new int[26];
        for(int i = 0; i < n; i++)
            hash[s[i]-'a'] = Math.max(hash[s[i]-'a'], dp[i]);

  
        //返回
        int ret = 0;
        for(int x : hash)
            ret += x;

        return ret;
    }
相关推荐
智者知已应修善业几秒前
【51单片机非精准计时2个外部中断启停】2023-5-29
c++·经验分享·笔记·算法·51单片机
QQ676580088 分钟前
基于YOLO26算法的智慧农业橙子图像识别 橙子采摘识别 水果采摘识别 高清采摘过程图像识别 YOLO+voc个数据集第10410期
算法·yolo·橙子采摘·水果采摘识别·高清采摘过程图像识别
潇洒畅想22 分钟前
1.2 希腊字母速查表 + 公式阅读实战
java·人工智能·python·算法·rust·云计算
weixin_5134499625 分钟前
EXTREME-PARKOUR项目学习记录
人工智能·学习·算法·机器人
测绘第一深情34 分钟前
MapQR:自动驾驶在线矢量化高精地图构建的端到端 SOTA 方法
数据结构·人工智能·python·神经网络·算法·机器学习·自动驾驶
Magic--35 分钟前
C++ 智能指针
开发语言·c++·算法
Timer@38 分钟前
LangChain 教程 05|模型配置:AI 的大脑与推理引擎
人工智能·算法·langchain
sali-tec41 分钟前
C# 基于OpenCv的视觉工作流-章50-霍夫找圆
图像处理·人工智能·opencv·算法·计算机视觉
想带你从多云到转晴44 分钟前
04、数据结构与算法---双向链表
java·数据结构·算法·链表
穿条秋裤到处跑1 小时前
每日一道leetcode(2026.04.11):三个相等元素之间的最小距离 II
算法·leetcode