LeetCode3: Longest Substring Without Repeating Characters

题目:给定一个字符串,求最长的无重复字符的子串长。
例如,对于字符串”abcabcbb”,这样的子串就是”abc”,长度是3。对于字符串”bbbbb”,这样的子串就是”b”,长度是1。

这也是一个简单题。但是同样,O(n^2)的brute force解法是不能被接受的。可以注意到,题目里面给了一个标签是Two Pointers。这是一个很重要的提示。所谓双指针,就是在一个数组上维护两个位置信息,表示当前状态的一头一尾。

我们让指针A指向当前满足条件子串的开头,指针B指向当前满足条件子串的结尾。初始的时候两指针均指向开头。然后逐一向后移动B,每移动一次就检查该元素是否在之前已经出现。如果出现,刷新长度为max(指针B的位置减去指针A的位置, 当前长度),并且让指针A往后移动一位。
最终结果为max(字符串末尾减去指针A的位置,当前最大长度)

Mehr lesen

LeetCode2: Add Two Numbers

这题很直白,就是把两个数相加。注意一下进位的问题就可以啦。

啊呀,最喜欢这种brute force的题了(就是这么不求上进)。

今天就没什么要讲的了╮(╯-╰)╭ 最后贴个代码

Mehr lesen

LeetCode1: Two Sum

开始写LeetCode系列了,会从第1个题开始写下去,暂时只写Algorithm部分的题。

嗯,都是我亲自写的。

先来读下题。这题让你找出一个数组中哪两个数字的和等于target,返回两数下标。返回的下标中第一个下标小于第二个下标。题目保证有解。

看到这个题目首先想到的那必须是O(n^2)的算法,Brute force当然是不能接受的。我们需要一个O(n)的算法。题目的tag里也有提示,可以用哈希表~剩下的问题就简单啦,只要遍历一遍数组就可以了。

Mehr lesen

就是搬了个家

自己本上的ubuntu不太常用,写博客太不方便,于是迁移到windows上了。

关于为什么又开始写博客,一方面不太想放弃这个小小的天地,另一方面最近来访不知道为什么增加了orz。由于不能对不起观众,所以又开始更新了。再一个原因大概是最近开始刷LeetCode了(突然手贱),也不知道能不能坚持得下去,一边刷一边记录下来可能更有动力一点。

Mehr lesen

Attacks

###DoS/DDos攻击
Dos(Denial of Service)顾名思义就是拒绝服务攻击。这种攻击利用占用网络资源的方式使服务器拒绝用户的正常请求。比如”the ping of death”这种攻击据说可以摧毁一个没有打过补丁的UNIX系统。

由于大多数个人Hacker带宽资源不够,所以又产生了大家一起攻击的分布式拒绝服务攻击DDos(Distributed Denial of Service)。这种攻击利用网络上已被攻陷的电脑作为“僵尸”,向某一个特定的目标发动密集的DoS攻击,从而把目标电脑的资源耗尽,无法向正常请求的用户提供服务。这些被攻陷的“僵尸”组成的网络称为“僵尸网络”。

形式:带宽消耗型和资源消耗型
特点:通过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的

Mehr lesen

一些有意思的做法

感觉很难起标题,想表达的意思是:因为比较笨,很多想不到的技巧就在这里积累一下。

差不多就是这么个意思。以下就开始正文部分啦~

###关于末尾不要的逗号
之前写程序的时候一直苦恼这个问题,怎么样使打印一列数字的末尾不要逗号。没想到《Expert C Programming》里专门讲到了解决的办法。看下面这个函数:

Mehr lesen

那些我不知道的C

最近在读《C Primer Plus》和《Expert C Programming》,发现用了很久的C有很多从来都不知道的特性(面壁)。。。

于是在这里整理一下,就当是学习笔记。以下代码亲测通过。
编译器为gcc4.7.2

###关于#include

#include是C预处理器指令,并不是C语言的语句。通常,C编译器在编译前要对源代码做一些准备工作,称为预处理。#符号表明这一行是在编译器接手之前由C预处理器处理的语句。

Mehr lesen

软件工程demo运行概述

demo名称:SampleProject
请各位在群共享中下载。

/WEB-INF/src/web.xml有一个<welcome-file-list>标签,用于指出入口页面,这里是index.html。
然后我们进入WEB-INF看看index.html里的内容。

Mehr lesen

软件工程学籍管理系统API

该系统模拟一个高校的研究生学籍管理系统,从学生、教务员、管理员三个角度,基本实现研究生管理系统的所有功能。
系统的API定义如下:

Mehr lesen

关于编译原理实验的思考

最近在写编译原理实验,遇到了一些有意思的问题都写在这里。
实验中涉及的C–语法在这里

####关于yytext
yytext是一个指向当前被词法分析识别出的字符串的指针。
我们遇到的问题是,在创建语法树节点的时候,对于终结符,我们直接把一个char*的变量指向了yytext指向的值。在赋值处的打印是正确的,但是到了语法分析打印语法树的时候,会把当前结点之后所有的字符都打印出来。
这个问题后来通过开一块新空间,把新空间的值赋为yytext的值解决了。但是引起了我对yytext结构的一些思考。

Mehr lesen

已经有人次访问carolz的小站啦 ( •̀ ω •́ )y