动态规划算法-子数组、子串系列(数组中连续的一段):26.环绕字符串中唯一的子字符串

题目链接:467. 环绕字符串中唯一的子字符串(中等)

算法原理:

解法:动态规划

Java代码:

java 复制代码
import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-23
 * Time: 09:29
 */
class Solution {
    //467. 环绕字符串中唯一的子字符串
    //看完算法原理之后自己写的,基本一遍过
    //吴小哲跟我写的大体一样,只不过它是把s转换成字符数组了
    public int findSubstringInWraproundString(String s) {
        int n=s.length();
        int[] dp=new int[n];
        Arrays.fill(dp,1);
        for(int i=1;i<n;i++){
            char ch1=s.charAt(i-1);
            char ch=s.charAt(i);
            if((ch1-'a'+1==ch-'a')||ch1=='z'&&ch=='a')
                dp[i]+=dp[i-1];
        }
        int[] hash=new int[26];
        for(int i=0;i<n;i++){
            int ch=s.charAt(i)-'a';
            hash[ch]=Math.max(hash[ch],dp[i]);
        }
        int sum=0;
        for(int x:hash) sum+=x;
        return sum;
    }
}
相关推荐
暮冬-  Gentle°5 小时前
自定义内存检测工具
开发语言·c++·算法
一直都在5725 小时前
Java死锁
java·开发语言
ccLianLian5 小时前
数论·欧拉函数
数据结构·算法
2501_945424805 小时前
C++编译期矩阵运算
开发语言·c++·算法
2301_815482935 小时前
C++中的类型标签分发
开发语言·c++·算法
xushichao19895 小时前
代码生成优化技术
开发语言·c++·算法
炽烈小老头5 小时前
【每天学习一点算法 2026/03/22】前 K 个高频元素
学习·算法
2401_873204656 小时前
模板编译期循环展开
开发语言·c++·算法
木心月转码ing6 小时前
Hot100-Day51-TT70爬楼梯
算法
NAGNIP6 小时前
一文搞懂经典的优化算法都有哪些?
算法