用途: 用于解決找出符合某條件連續(xù)的數(shù)據(jù)。
1. 即在解決數(shù)組遍歷問(wèn)題時(shí),利用其遍歷的起點(diǎn)與終點(diǎn)。
2. 利用其數(shù)組內(nèi)元素ascall和當(dāng)前位置(或出現(xiàn)的次數(shù))建立新數(shù)組。新數(shù)組下標(biāo)為該字符ascall、大小為出現(xiàn)的位置或次數(shù)。
3.利用一次循環(huán)篩選出符合特定條件的連續(xù)數(shù)據(jù)?。
給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的 最長(zhǎng)子串 的長(zhǎng)度。
示例 1:
?
輸入: "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "b",所以其長(zhǎng)度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "wke",所以其長(zhǎng)度為 3。
請(qǐng)注意,你的答案必須是 子串 的長(zhǎng)度,"pwke" 是一個(gè)子序列,不是子串。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
源碼:
/* "abcabcbb" */
#include <string.h>
int lengthOfLongestSubstring(char * s){
int string[128] = { -1, -1 };
int i = 0, max_len = 0, start = 0;
memset(string, -1, sizeof(string));
for(i = 0; s[i] != 0; i++){
if(string[s[i]] < start) { //忽略起點(diǎn)之前的坐標(biāo)信息
int temp_len = i - start + 1;
if(temp_len > max_len) {
max_len = temp_len;
}
} else { //遇見重復(fù)的字母
start = string[s[i]] + 1; //重置起點(diǎn)坐標(biāo)
}
string[*(s+i)] = i; //不斷更新字母坐標(biāo)信息
}
return max_len;
}
2020-06-22
記錄歷經(jīng)的路,分享個(gè)人總結(jié)與感悟。歡迎關(guān)注公眾號(hào)“嵌入式漫漫修道路”獲取學(xué)習(xí)資料及經(jīng)驗(yàn)文檔,也歡迎與筆者共同探究技術(shù)問(wèn)題。

嵌入式漫漫修道路
個(gè)人總結(jié),轉(zhuǎn)載請(qǐng)標(biāo)明出處及鏈接,謝謝!
在看你就贊贊我!
image