完整代码如下:
class Solution { public List<Integer> partitionLabels(String S) { if(S==null||S.length()==0) return null; List<Integer> list = new ArrayList<>(); Map<Character,Integer> map = new HashMap<>(); for(int i=0;i<S.length();i++){ map.put(S.charAt(i),i);//记录char c 和其最后出现位置的 map } int start = 0; int end = 0; for(int i=0;i<S.length();i++){ end = Math.max(end,map.get(S.charAt(i))); if(i==end){ list.add(end-start+1); start = i+1; } } return list; } }