给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。
注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。
返回一个表示每个字符串片段的长度的列表。
思路:题目其实比较拗口,尽可能的多片段,还要让同一字母出现在一个片段里。
那么也就是说,在之前出现过的字母,至少要都出现完,并且保证后面都没有这个字母了。
做法:用数组映射记录每个字母出现的最大下标,然后再一次的遍历数组;直到下标到达当前遇到的最大值时,进行一次划分。
class Solution {
public:vector partitionLabels(string s) {int hash[26]={0};for(int i=0;i result;for(int i=0;i