给定一个字符串 s ,找出这样一个子串:
1)该子串中的任意一个字符最多出现2次;
2)该子串不包含指定某个字符;
请你找出满足该条件的最长子串的长度。...输入描述:第一行为要求不包含的指定字符,为单个字符,取值范围0-9a-zA-Z
第二行为字符串s,每个字符范围0-9a-zA-Z,长度范围1,10000
输出描述:一个整数,满足条件的最长子串的长度;如果不存在满足条件的子串...如果新加入的字符已经出现过2次,我们就收缩窗口的左侧边界,直到移除了一个重复出现的字符。
我们重复这个过程,直到right指针遍历完整个字符串,就可以得到满足条件的最长子串长度。...利用n & (n - 1)会将n的最后一个1变为0的特性。
每循环一次,就找到一个1,并将其变为0。循环终止的条件是n变为0,count的值就是n中1的个数。... // 找到一个1,count变为1,n变为0,循环终止,count值为1所以时间复杂度是O(k),k是n中1的个数。