每日一题 leetcode 467. 环绕字符串中唯一的子字符串 java

阅读 119

2022-05-25

class Solution {
    public int findSubstringInWraproundString(String p) {
        int[] dp=new int[26];
        int k=0;//目前连续递增的字串长度
        for(int i=0;i<p.length();i++){
            if(i>0&&((p.charAt(i)-p.charAt(i-1)+26)%26==1)){//跟前一个字符相邻:字符之差为1或25
                k++;
            }
            else{
                k=1;//跟前一个字符不连续。破坏了连续条件,k设为1
            }
            dp[p.charAt(i)-'a']=Math.max(dp[p.charAt(i)-'a'],k);
        }
        return Arrays.stream(dp).sum();
    }
}

精彩评论(0)

0 0 举报