Leetcode3.无重复字符的最长子串

题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

题目思路:遍历一次暴力即可,用一个flag标记数组,边遍历边标记已经出现了的字符(注意不是字母),当出现重复字符,则取消该重复字符前面的字符的标记,然后与max变量进行比较。是一道水题

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int flag[500] = { 0 };//标记数组
        int al = 0;
	int max = 0;//存储最大长度
        int l=s.length();
        if(l==1)return 1;
        	for (int i = 0; i < l; i++) {
			if (flag[s[i]]) {
				max = max < al ? al : max;//比较最大长度
				int j = i - al;
				for (; j <= i; j++) {
					if (s[j] == s[i]) {
						break;
					}
					else {
						flag[s[j]] = 0;//清除重复字符前面的字符标记
					}
				}
				al =al-( j-(i-al));//计算当前不重复字符的长度
			}
			else {
				flag[s[i]] = 1;//标记
				al++;
			}
		}
        max = max < al ? al : max;//比较最大长度
        return max;
        
        
        
        
        
        
    }
};

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 15:37
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务