思路
双指针,用left和right表示以right为右边界的连续子字符串,left表示其左边界
解题过程
right从0到s.length()-1遍历:1.如果当前字符减去前一个字符的值为1,则当前字符与前面的字符是连续的,此时left不变,right++;2.如果当前字符减去前一个字符的值为1,则当前字符与前面的字符是不连续的,此时left=right,right++。在遍历过程中维持一个ans变量表示最大长度,遍历结束后最后返回ans即可
Code
class Solution {public int longestContinuousSubstring(String s) {int ans=1;for(int i=0,j=1;j<s.length();j++){if(s.charAt(j)-s.charAt(j-1)==1) {ans=Math.max(ans,j-i+1);}else{i=j;}}return ans;}
}作者:菜卷
链接:https://leetcode.cn/problems/length-of-the-longest-alphabetical-continuous-substring/solutions/2923370/zui-chang-de-zi-mu-xu-lian-xu-zi-zi-fu-c-ymuq/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。