《原神攻略》2.0第一期深淵12-1平民配隊及打法教學
阿新 • • 發佈:2021-08-05
字串 S 由小寫字母組成。我們要把這個字串劃分為儘可能多的片段,同一字母最多出現在一個片段中。返回一個表示每個字串片段的長度的列表。
示例:
輸入:S = "ababcbacadefegdehijhklij"
輸出:[9,7,8]
解釋:
劃分結果為 "ababcbaca", "defegde", "hijhklij"。
每個字母最多出現在一個片段中。
像 "ababcbacadefegde", "hijhklij" 的劃分是錯誤的,因為劃分的片段數較少。
提示:
S的長度在[1, 500]之間。
S只包含小寫字母 'a' 到 'z' 。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/partition-labels
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
class Solution { public: vector<int> partitionLabels(string s) { int len = s.size(); vector<int> lastIndex(26,0); for(int i = 0; i < len; i++) { lastIndex[s[i]-'a'] = i; } int start = 0; int end = 0; vector<int> ret; for(int i =0 ; i < len; i++) { end = max(lastIndex[s[i]-'a'],end); if(i==end) { ret.push_back(end-start+1); start = end+1; } } return ret; } };