本文共 815 字,大约阅读时间需要 2 分钟。
题目的链接在这里:
代码如下:
class Solution { public ListpartitionLabels(String S) { //首先就是遍历字符号串,找到和起点相同的最后一个字母,查找这个区间里的字母最后的index是否超过 //区间,超出则更新区间,直到找到最大的index,那么index-i+1就是所求的区间长度,使用 //cache来存储每个字母最后出现的位置 if(S==null||S.length()==0){ return null; } List res=new ArrayList<>(); int index,i,len=S.length(); //cache用来存最后的位置 int[]cache=new int[26]; //这里很妙 for(i=0;i index){ index=cache[S.charAt(j)-'a']; } } //这里就进行对应的更新,index-i+1就是一组的内容大小 res.add(index-i+1); i=index+1; } return res; }}
转载地址:http://qifen.baihongyu.com/