长颈鹿Giraffe

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月12日

摘要: 原文:Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?译文:实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)解答:假设题目中提到的字符是包含在ASCII中的字符的话,那么最多是256个。所以可以用一个256长的数组来标记,或者用一个8个32位的int值来标记。如果题目中没有规定只使用基本的数据结构的话,用BitSet来做也很方便的 阅读全文
posted @ 2013-07-12 11:09 长颈鹿Giraffe 阅读(301) 评论(0) 推荐(0) 编辑

2013年7月10日

摘要: 1. Arrays and Strings1.1Hash Tables哈希表,简单的说就是由一个数组和一个hash函数组成实现key/value映射并且能高效的查找的数据结构。最简单的想法就是将hash(key)做为数组的下标(index)来存取。但是为了防止hash的冲突(collisions),数组的大小必须设置得足够大,因此上面这种简单的实现在实际中是不可取的。实际上,哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双向)的头指针。每个元素被存放在hash(key)%array_length所在的链表中。如下图所示:另外,我们可以用二叉查找树(bst)来实现哈希表,在平衡树的 阅读全文
posted @ 2013-07-10 12:18 长颈鹿Giraffe 阅读(608) 评论(0) 推荐(0) 编辑

2013年6月30日

摘要: 在看GCC源码的时候看到mangles这个单词,于是google了一下。 在面向对象编程语言出现之前,如果你想要打印不同类型的数据,需要写多个方法,例如PrintInteger(int i),PrintString(string s) 和 PrintFloat(float f) 。也就是说, 你必须通过命名来区别行为和数据类型,因为OOP语言出现前任一语言,例如C,不允许你用相同的名字写方法, 即使他们的参数类型不同。 C++的来到实现了方法重载。因此,你可以写多个方法,例如PrintInteger(int i)、PrintString(string s) 和 PrintFloat(f... 阅读全文
posted @ 2013-06-30 15:28 长颈鹿Giraffe 阅读(744) 评论(0) 推荐(0) 编辑

摘要: 今天有个同学问我一个问题: 用shell命令将test.log文件中第3-5行的第2个”filter”替换成”haha”其实我对各种shell命令也不是特别熟,于是又现学了一个强大的sed命令。sed简单的介绍:sed命令可实现删除(delete)、改变(change)、添加(append)、插入(insert)、合并、交换文件中的资料行,或读入其它档的资料到文件中,也可替换(substuite)它们其中的字串、或转换(tranfer)其中的字母等等。例如将文件中的连续空白行删成一行、"local"字串替换成"remote"、"t"字 阅读全文
posted @ 2013-06-30 12:24 长颈鹿Giraffe 阅读(8247) 评论(3) 推荐(0) 编辑

2013年6月23日

摘要: 1、前提是build GCC的时候要修改makefile,在configure之后生成的makefile忠,将CFLAGS和CFLAGS_FOR_BUILD改成-g3 -O0..2、在root用户下,切换到源码所在目录,输入:jRate-gcj --main=Test1 Test1.java -o Test1 -dr -O0 -v-dr表示导出RTL代码,-v会显示GCC编译各个过程的命令行信息,在后面使用GDB的时候会用到。这里我显示的如下所示:Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/specsRea 阅读全文
posted @ 2013-06-23 20:52 长颈鹿Giraffe 阅读(1688) 评论(0) 推荐(0) 编辑

2013年3月19日

摘要: 一开始并没有看makefile的官方文档,而是这个文档:http://scc.qibebt.cas.cn/docs/linux/base/%B8%FA%CE%D2%D2%BB%C6%F0%D0%B4Makefile-%B3%C2%F0%A9.pdf说得很详细,大概看了前面到变量说明的部分。然后对照了一下eclipse生成的makefile,简单的makefile应该没有问题了。#set your project namePRJ_NAME=libXXX.so设置项目的类型,是共享库、可执行程序还是静态库#set your project type : choose one belowPRJ_TY 阅读全文
posted @ 2013-03-19 23:35 长颈鹿Giraffe 阅读(566) 评论(0) 推荐(0) 编辑

2012年7月26日

摘要: 经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用/tmp/test.sh > /tmp/test.log 2>&1前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件 相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1 的意思就是将标准错误也输出到标 阅读全文
posted @ 2012-07-26 16:57 长颈鹿Giraffe 阅读(1671) 评论(0) 推荐(0) 编辑

2012年3月20日

摘要: 拿起ubuntu启动光盘启动进入试用ubuntu,打开终端输入命令 sudo fdisk -l #查看我ubuntu安装的位置(我的是sda5) sudo -i #此步用于得到root权限,无需输入密码,方便以下操作 mkdir /media/tempdir #创建一个文件夹tempdir,用于挂载刚才的sda5,此文件夹名称你可以依个人爱好而定,没有太多要求 mount /dev/sda7 /media/tempdir #将sda7挂载于tempdir文件夹下 grub-install --root-directory=/media/tempdir /dev/sda输入以后如果出... 阅读全文
posted @ 2012-03-20 00:05 长颈鹿Giraffe 阅读(1375) 评论(0) 推荐(0) 编辑

2012年2月27日

摘要: 1. 配置.cl文件支持:1.1. 打开VS2008, 工具->选项->文本编辑器->文件扩展名,添加一个新的扩展名,指定编辑器为Microsoft Visual C++ 。这样在OpenCL文件中就能显示C++的语法高亮了。1.2. 配置OpenCL语法高亮- 打开目录~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\doc 可以看到有一个"usertype.dat"文件其中包含了所有的OpenCL的关键字。- 将这个文件复制到 ~\Program Files\Microsoft Visual St 阅读全文
posted @ 2012-02-27 15:27 长颈鹿Giraffe 阅读(3251) 评论(0) 推荐(0) 编辑

2012年2月25日

摘要: 在计算机上安装Linux系统,对硬盘进行分区是一个非常重要的步骤,下面介绍几个分区方案。(1)方案1(初学者)/ :建议大小在5GB以上。/home:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。swap:即交换分区,建议大小是物理内存的1~2倍。(2)方案2(开发者)/boot:用来存放与Linux系统启动有关的程序,比如启动引导装载程序等,建议大小为100MB以上。/ :Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为5GB以上。/home:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。/usr :用来存放Linux系统中的应用程序,其相 阅读全文
posted @ 2012-02-25 23:25 长颈鹿Giraffe 阅读(663) 评论(0) 推荐(0) 编辑