群上闲聊,说道自己封装了一个 python 的 http head 工具
#!/usr/bin/env python
from socket import *
while True:
HOST = raw_input('> ')
if not HOST:
break
tcpCliSock = socket(AF_INET, SOCK_STREAM)
PORT = 80
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock.connect…… 阅读全文
Monthly Archives: October 2012
校招笔记
到此刻这段时间的校招找工作终于告一段落,写个笔记作为记录,同时也希望能对后来的同学能有帮助吧。
我是投的是技术类,后台开发的方向,8 月底的时候有师兄内推,大约 8 月底 9 月初吧,接到一个电话面,(我走完全程之后发现,好像有内推唯一的一个福利就是多了一个电话面,电话面之后该笔试还是笔试,该几轮面试还是…… 阅读全文
字符串转浮点数
今天看到一个题,让把字符串转成浮点数,列了一下,需要注意的应该就是这几点
前导空白字符
符号位
前导零
#include <stdio.h>
#include <string.h>
#include <math.h>
double a2f(char *str) {
// leading space
while (*str==' ' || *str=='t') {
str++;
}
// judge sign
int sign = 1;…… 阅读全文
针对正则引擎的拒绝服务攻击
最近在看这个书,http://book.douban.com/subject…,在 311 页讲到了一个针对正则引擎的 DoS,叫做 ReDoS,wiki 看这里,http://en.wikipedia.org/wiki/R…,原因是正则引擎在匹配的时候是用状态机,然而通过构造一些特殊的输入,可以让这个状态机需要尝试的路径暴涨,于是就耗时也跟着上升,照着书上敲了代码…… 阅读全文
字符串距离
今天见到一个题,让求两个字符串之间的距离,隐约记得之前在 php 中用过这个的现成函数,当时还查了一下原理,是一个俄罗斯的人搞的一个算法,原理是用矩阵,于是就往矩阵上去想,结果没想出来,后来听同学说那是个 dp,想想也是,唉,思路狭隘了
参考这里,http://www.java3z.com/cwbwebho…,写了一个矩阵的版本,…… 阅读全文
字符串反转
今天遇到一个题,让反转字符串,简单题,注意下细节就好了
#include <stdio.h>
#include <string.h>
char *str_reverse(char *str) {
if (str == NULL) {
return NULL;
}
for (char *left=str, *right=str+strlen(str)-1;
left<right; left++, right--) {
char tmp = *left;
*left = *right…… 阅读全文
根据字符表穷举密码
今天遇到一个题,要求根据 a-z0-9 这些字符穷举出所有的可能的密码,搞了搞,代码如下
#include <stdio.h>
#include <string.h>
#define PWD_LEN (3)
char table[] = "abcdefghijklmnopqrstuvwxyz0123456789";
int table_len = strlen(table);
void f(char pwd[], int curr) {
if (curr == P…… 阅读全文
斐波那契数列
见到一个题,让算斐波那契数列的第 n 项,手工推通项没推出来,记忆化递归如下
#include <stdio.h>
#define MAX 1024
int F[MAX] = {0};
int f(int n) {
if (F[n] != 0) {
return F[n];
}
F[n] = f(n-1) + f(n-2);
return F[n];
}
int calc_f(int n) {
if (n <= 0) {
return -1;
}
F[1] = F[2]…… 阅读全文
创建一个指定大小的空白文件
这两天在做多线程下载文件的时候,遇到一个问题,需要在下载文件之前,新建一个同等大小的空白文件出来,好往里面写
#include <stdio.h>
int main() {
FILE *fp = fopen("empty_file", "wb");
fseek(fp, 2*1024-1, SEEK_SET);
char end = EOF;
fwrite(&end, sizeof(cha…… 阅读全文
struct 传参改变内容
今天想到一个问题,就是 struct 的传参和数组的传参的区别,先看代码
#include <stdio.h>
#include <string.h>
struct d {
int n;
char str[100];
};
void chg(struct d *a) {
a->n = 1;
strcpy(a->str, "changing");
printf("%dn", a->n);
printf…… 阅读全文