字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。
示例 1:
輸入: s = "ababcbacadefegdehijhklij"
輸出: [9,7,8]
解釋:劃分結果為 "ababcbaca", "defegde", "hijhklij"。
每個字母最多出現在乙個片段中。
像 "ababcbacadefegde", "hijhklij" 的劃分是錯誤的,因為劃分的片段數較少。
注意:s的長度在[1, 500]之間。
s只包含小寫字母'a'到'z'。
分析:比如裡面隨便乙個子串,只要滿足了裡面的字母在剩下的子串裡沒有就可以擷取下來了。
比如 s = "ababcbacadefegdehijhklij"
其中 "ababcbaca"就可以擷取,因為剩下的子串裡沒有a,b,c,字元了。
怎莫找到這個子串呢, 假如子串區間為(i, j);
從第乙個字元a下標0開始我們找到為a的最後乙個字元下標為8.區間暫時就為(0,8)
然後遍歷他們之間的字元的最後乙個字元下標如果大與j就讓j更新,
知道裡面的最後乙個字元的下標都小於j說明這就是乙個結果儲存然後更新區間
classsolution
continue
; }
int index =s.lastindexof(s.charat(k));
if(index>j)
}return
res;
}}
Leetcode 763 劃分字母區間
字串s由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每個字...
Leetcode763 劃分字母區間
problem describe 字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca d...
Leetcode 763 劃分字母區間
字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每...