思路:
主要思路还是利用JAVA的s.lastIndexOf(char) 用这个来从右到左寻找字符c出现的最后一个位置end,
然后循环寻找 刚才字符的下一个字符最后出现的位置
直到寻找到最长end
class Solution {
public List partitionLabels(String S) {
List l = new ArrayList<>();
int n = S.length();
char [] c = S.toCharArray();
for(int i = 0; i < n ; i ++)
{
int item = i;
int end = S.lastIndexOf(c[i]);
while(i < end)
{
i ++;
end = Math.max(S.lastIndexOf(c[i]), end);
}
l.add(end - item + 1);
i = end;
}
return l;
}
}