lintcode 具有K個不同字元的子串

2021-09-20 09:59:13 字數 725 閱讀 5471

給定字串s和整數k.

計算長度為k且包含k個不同字元的子串數

string: 「abcabc」

k: 3

answer: 3

substrings: [「abc」, 「bca」, 「cab」]

string: 「abacab」

k: 3

answer: 2

substrings: [「bac」, 「cab」]

維護乙個陣列temp和乙個值cnt,記錄當前迭代值i之前k個長度的子串中包含的每個不同字元的個數和個數和。如果cnt==k,是符合要求的子串。每次i向後移動時,都要對第i-k個字元的數量和cnt進行更新。把得到的子串放到set中,最後返回set的大小。

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

class solution 

if (cnt == k)

res.insert(stringin.substr(i-k+1,k));

}return res.size();}};

-------------end of file

thanks for reading-------------

lintcode 具有K個不同字元的子串

給定字串s和整數k.計算長度為k且包含k個不同字元的子串數 string abcabc k 3 answer 3 substrings abc bca cab string abacab k 3 answer 2 substrings bac cab 維護乙個陣列temp和乙個值cnt,記錄當前迭代...

第k個排列 LintCode

給定 n 和 k,求123.n組成的排列中的第 k 個排列。注意事項 1 n 9 樣例 對於 n 3,所有的排列如下 123 132213 231312 321如果 k 4,第4個排列為,231.挑戰 o n k in time complexity is easy,can you do it in...

lintcode 合併k個排序鍊錶

definition for listnode.public class listnode 但是不管合併幾個,基本還是要兩兩合併。那麼我們首先考慮的方法是能不能利用之前那道題的解法來解答此題。答案是肯定的,但是需要修改,怎麼修改呢,最先想到的就是兩兩合併,就是前兩個先合併,合併好了再跟第三個,然後第...