给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
示例 4:
输入: s = ""
输出: 0
来源:力扣(LeetCode)
解题思路:
空字符串:0
一个字符:不重复的最长就1
大于1个字符:
如:pwwdskef
j:从下标为一的字符(下标0开始),到最后一个;要是没有下标为1的字符,那不重复的字符就是0/1个。
i:从下标为0的字符开始,每次循环到J之前,判断是否步进的每个i都不等于J所指的值。并实时记录每轮i循环里的不等于j 的字符的个数num(每轮更新一次,只有该伦次的num比前边的大)
如果i在某次便利的时候,发现有个字符等于j指的字符,则num计数重置为1,说明出现了重复字符串,并且i及之前的字符串不能再用了,从i后边的字符,重新计数比较
int lengthOfLongestSubstring(char * s){ int i =0; int j =1; int number = 1; int temp = 1; int pts = 0; if(s[0]=='