生活随笔
收集整理的這篇文章主要介紹了
连续子串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由 26 個小寫字母組成的 str,在 str中查找最長連續字符串不相同的子串。
如abcae, 連續子串是bcae
table記錄的是字符最近出現的位置;
int maxDiff(char * str){int table[26] = {-1};memset(table,-1,sizeof(table));int loop = 0;int max_len = 0;int tmp_len = 0;int len = strlen(str);table[str[0] - 'a'] = 0;max_len = 1;tmp_len = 1;for (int i = 1; i < len ;++i) {int last = table[str[i] - 'a'];if (last == -1) {tmp_len++;}else if (i - tmp_len > last) {tmp_len++;}else {tmp_len = i - last;}table[str[i] - 'a'] = i;if (max_len < tmp_len)max_len = tmp_len;}return max_len;
}int main()
{//3*2char *a = "abcae";cout<<maxDiff(a)<<endl;return 0;}
總結
以上是生活随笔為你收集整理的连续子串的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。