• linux 常识

    文件和目录

    linux 的文件和目录对应于 windows 下的文件和文件夹。不过 linux 的文件又是个比较抽象的概念,凡是可以“读写”的东西都可以视为“文件”,所以目录也是一种特殊的“文件”,这一点在编程的时候可能体现的更多一点。

    文件路径

    windows 下的路径类似于 D:\projects\hello.c ,而 linux 的路径则类似于 /home/ant/projects/hello.c 。也就是 linux 下的路径均以 / 开始,这是根目录

    Tags: 

  • 正则表达式 Regular Expression 基本用法

    正则表达式是一个好东西,在字符串搜索中可能用的最多,比如在一个很大的文件中找出来所有的 url 链接,或是找出来所有的 email 地址。正在表达式最初在 perl 中使用,后来几乎所有的语言中都加入了其实现。本篇要说的是 ECMAScript 也就是 JavaScript 中的正则表达式,在不同语言中的其记号和含义大体相同,不过可能略有差异。

    正则表达式:

    正则表达式是用来表示模式 pattern 串,给出一类字符串的抽象表示,比如邮政编码的具体写法很多,比如 310007、300000,但是都满足 6 位数字,这种“模式”使用正则表达式记法就是 \d{6}。{6} 表明前面的字符出现 6次,\d 表明是数字,也就是 0 1 2 3 4 5 7 8 9。模式串中出现的大多数字符就是其字符本身,然而有些特殊字符(元字符),因为特殊意义而并不代表其本身,比如前面的 { 指代的就不是字符 {,而是 {6} 的一部分。

    普通字符

    除了一些特殊字符外的字符,都是普通字符,比如 a b c 0 1 2 X Y Z , : 等等。问题是,哪些是特殊字符? ^ $ \ . * + ? [ ] { } ( ) / 这些是特殊的字符,在正则表达式出现代表了特殊的含义,下面会提到。

    Tags: 

  • 2014年腾讯校招笔试(10月26号)题目

    Forums: 

    2014年腾讯校招笔试(10月26号)题目

    昨天腾讯笔试,不多说了,O__O"… 选择题 25 题,每题 4 分,一共 100 分;填空题每空 4 分,5 个空,一共 20 分。选做题四题,每题 20 分,选做一题,不计入总分。选择题都是不定项选择,多选、少选、错选均不得分。O__O"… 前三题不会写,第四题赶脚答案有误,... O__O"…算了,不多说,下面是题目,自己看。

  • MathJax例子

    Forums: 

    华丽滴排版

    $$ \left [ - \frac{\hbar^2}{2 m} \frac{\partial^2}{\partial x^2} + V \right ] \Psi = i \hbar \frac{\partial}{\partial t} \Psi $$

    数学方程

    $$ g\frac{d^2u}{dx^2} + L\sin u = 0 $$

    $$ J_\alpha(x) = \sum\limits_{m=0}^\infty \frac{(-1)^m}{m! \, \Gamma(m + \alpha + 1)}{\left({\frac{x}{2}}\right)}^{2 m + \alpha} $$

  • 批量文件重命名

    Forums: 

    批量文件重命名

    这是一个需求,很多时候 me 们会下了很多文件,比如图片文件,下载的文件名字一般都比较乱,总有一天 me 们希望整理一下,使用编号是个不错的选择,比如 1.jpg、2.jpg、3.jpg 等。一个一个重命名在数据量小的时候也无所谓,但是对于上百个文件甚至上千个,希望重命名,这...

    这里写了个小程序,使用 UNIX/Linux 下的 api,打开目录,遍历文件,然后一一重命名,按编号递增顺序;这里也让名字的长度一致,比如都是 3 位,这样的话就有 010.jpg、099.jpg 这样的名字(编号前面补空缺的 0 的一个原因是:在 me 们选择按名字排序的时候,排序结果和编号顺序一致,否则 9.jpg 会在 10.jpg 的后面,自己猜原因,O__O"…)。

    为了提供一定的灵活性,目录文件后缀起始编号文件名长度可以通过参数设置。

  • 计算机笔试面试题目

    Forums: 

    计算机笔试面试题目

    1. 1 - 4000 里面有多少个数,组成该数的数字之和能被 4 整除?
    2. 神马是拷贝构造函数 ? 构造的时机有哪些 ?
    3. c++ 中虚函数跟 java 的抽象函数有啥区别 ?
    4. delete 数组时如何知道数组大小 ? malloc 的过程是怎么样的 ?
    5. sql 中 inner join 和 outer join 的区别;
    6. B+ 树是神马 ?
    7. 一个有序数组循环偏移了一下,求偏移距离 ?
    8. 将浮点数转化为字符串 ? 将字符串转化为浮点数 ?
    9. 去掉所有连续相同的字符,空间复杂度为 O(1) ;
    10. 给你一个字母集合,如 {a,b,c,d} 和一个字符串 aecdbfaab , 求该字符串包含字母集合的最短子串;
    11. 给你三个排序的数组 A、B、C,求min{max{|A[i] - B[j]|, |A[i] - C[k]|, |B[j] - C[k]|}},i、j、 k是任意的;
    12. 栈中快速找最大元素,空间复杂度尽可能的小;
  • 找出重复元素

    找出重复元素

    给一个序列,比如 1 2 3 2 4 5,重复元素是 2。现在就是给一个序列,找出所有的重复元素。

    两层的循环,me 就不多说了,就是时间效率比较低,O(n2)。如果考虑将前面遍历过的元素放入一个 set 或是 map 中,方便后续查看是否已经存在,那么时间复杂度就会降低。使用 tree 实现的 set/map,时间复杂度是 O(nlogn);使用个hash 实现的 set/map,时间复杂度是 O(n)。所以,如果可使用 hash 实现的 set/map。

    c++ 中的 set/map 是 tree 实现的,unordered_set/unordered_map 是 hash 实现。

    和本题有类似解法的题目还有:

  • 和为某个值的数对

    和为某个值的数对

    一系列数,比如 1 2 3 4 5,和为 3 的数对只有 (1,2);和为 5 的数对有 (1,4)、(2,3)。现在问题是给 u 个序列和一个 sum,求出和为 sum 的所有数对。

    笨方法

    循环遍历序列的值 i,对于每个 i 再循环遍历 j (i ≠ j),如果 i + j == sum 那么就是一对。时间复杂度是 O(n2)。为了放置 (i,j) 和 (j,i) 都出现,可以让 j 从 i+1 开始遍历。

    好方法

    对于该题目,顺序遍历一遍是少不了的,在遍历到 i 的时候,其实 me 们关心的是 sum-i 是否存在。对于上面的笨思路是重复遍历了序列一遍,那么如果 me 们能高效地知道某一个元素是否在序列中,那么就有比较高效的解法。前面不管是使用数组/vector,还是使用 list,都需要 O(n) 的查找时间,如果选取 set 或是 map,则可以将查找的时间降得更低。me 赶脚更自然的结构应该是 set,虽然使用 map 也可以。

  • n的划分数

    求 n 的划分数

    将 n 表示成更小的自然数的和,叫做 n 的一个划分,比如 3 = 2 + 1, 3 = 1 + 1 + 1 ,(3 算不算 3 的一个划分不是重点,假定算吧)。下面是 6 的划分:

    6 的划分:( 11 个)
    = 6
    = 5 + 1
    = 4 + 2 
    = 4 + 1 + 1
    = 3 + 3 
    = 3 + 2 + 1 
    = 3 + 1 + 1 + 1
    = 2 + 2 + 2 
    = 2 + 2 + 1 + 1 
    = 2 + 1 + 1 + 1 + 1
    = 1 + 1 + 1 + 1 + 1 + 1
    

    可以数出来 1、2、3、4、5、6、7 的划分数分别是:1、2、3、5、7、11、15。现在问题就是如何求任意一个 n 的划分数,以及划分是神马 ?

  • 2014蘑菇街笔试题目

    Forums: 

    一、选择题

    1. 小于 20131015 的自然数中(包括 0)能被 3、5、7 整除的数有多少个 ?
    2. 一个单向链表,结点的 link 域指向下一个结点,现在要在 p 结点后插入一个新的结点 q,问正确操作是 ? (p、q 都是结点指针)
    3. 一副扑克牌,54 张,现在平均分成 3 堆,问大小王在同一堆的概率是多少 ?
    4. 下面哪些语句是错误的 ? A. a+=++a; B. a+=a++; C. (a++) += a; D. (++a) += a;

    二、推理题

    甲乙丙三个人打乒乓,每次两个人对打另外一个人做裁判,输的人下局当裁判。现在打了一上午,甲打了 x 局,乙打了 y 局,丙做裁判了 5 局,问第三局的比赛情况是怎么样的 ? (x, y 具体数字忘记了,O__O"…)

Pages