23 劃分字母區間

2021-09-10 05:35:19 字數 1025 閱讀 4429

題目描述:

字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。

示例 1:

輸入: s = 「ababcbacadefegdehijhklij」

輸出: [9,7,8]

解釋:劃分結果為 「ababcbaca」, 「defegde」, 「hijhklij」。

每個字母最多出現在乙個片段中。

像 「ababcbacadefegde」, 「hijhklij」 的劃分是錯誤的,因為劃分的片段數較少。

注意:s的長度在[1, 500]之間。

s只包含小寫字母』a』到』z』。

首先將所有字母的索引位置放在tem陣列中,注意的是這裡的索引是每個字母出現的最大索引,然後從零開始,此時我們取出該字母出現的最後的下標,這段字母下標就是i到index,然後再從這段字母中進行遍歷,如果有出現下標大於index的,那麼就更新index,直到迴圈結束,需要注意的是加入的長度是index - i + 1,加入result,最後返回result即可

**

public listpartitionlabels(string s) 

int tem = new int[26];

for (int i = 0; i < s.length(); i++)

//如果不是進行遍歷

for (int i = 0; i < s.length();)

}result.add(index - i + 1);

i = index + 1;

} return result;

}

效率不是很高,不知道為啥子

奇怪,可能是由於網速的原因吧

class solution 

res.add(end - start + 1);

start = end + 1;

}return res;

}}

思路基本一致,但是人家排名第一

763 劃分字母區間

字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每...

763 劃分字母區間

示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每個字母最多出現在乙個片段中。像 ababcbacadefegde hijhklij 的劃分是錯誤的,因為劃分的片段數較少。注意 s的長度在...

763 劃分字母區間

題目描述 字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhk...