- 博客(94)
- 收藏
- 关注
原创 [leetcode:13] 罗马数字转十进制
竟然过了class Solution {public: int romanToInt(string s) { map m; m['I'] = 1; m['V'] = 5; m['X'] = 10; m['L'] = 50; m['C'] = 100; m['D'] = 50
2015-12-03 17:52:56 685
原创 [leetcode:7] 字符串转整数的溢出判断
#include#include #include#include#include#include#include #include using namespace std;void empty(const char* fmt, ...) {}#define print emptyclass Solution {public: char int_max[65
2015-11-30 11:57:39 2043
原创 坐结合和右结合的含义
例如:1+2+3,如果+为坐结合,则解释为 (1+2)+3,如果右结合就解释为 1+(2+3) 。因为加号具有结合律,所以以上二者相同。但是不是所有情况下都相同。
2015-09-16 20:17:40 896
原创 解决移进/规约冲突
How to resolve shift/reduce conflicts?如何解决移进规约冲突?比如下面的文法就有冲突:expr: expr - expr | expr * expr | - expr对于输入: - 1 * 2解析完1后,可以继续移进 * ,或者根据规则 expr:-expr 规约为 -1。也就是说,解析方式有两种:
2015-09-16 19:40:49 31614 2
原创 python移动文件
# -*- coding: utf-8 -*-import osimport os.pathimport shutildef MoveMp3(src_dir, dest_dir): count = 0; for parent,dirnames,filenames in os.walk(src_dir): print(dirnames); for filename in fil
2015-07-27 23:01:43 2058
原创 unix套接字
下面的代码创建了一个server和一个client。client发送两个请求:echo和exit。server收到exit立即退出,其他请求则返回一个固定的字符串作为回馈。#include #include #include #include #include #include #include #include #include #include #include
2015-04-14 15:52:53 584
原创 GO语言:Get拉取网页
package mainimport ( "net/http" "io/ioutil" "fmt"// "time")func main(){ var website string = "http://www.future.org.cn" if resp,err := http.Get(website); err == nil{ defer resp.Body.Close()
2015-04-11 12:36:08 1219
原创 将GIF多张图片转成一张PNG图片,以便在游戏中可以方便使用
使用一个python库PIL完成。可指定的参数为png图片最大宽度maxwidth,默认为4096。在这个限制下,如果一行放不下,就自动换行。其他参数均作为要处理的gif文件名,将会进行遍历处理。gif文件名必须用.gif结尾,生成的文件将分别以.png和.lua结尾。例如xx.gif会在同一个目录下生成xx.png和xx.lua文件。如果xx.png活xx.lua以及存在,则导致该文
2015-01-11 15:44:42 2229
原创 lua编程注意事项
参数遗漏问题function a() return "a1", "a2"endprint(1, a())print(1, a(), 2)打印的结果是1 a1 a21 a1 2可以看到,第二次打印的时候a的第二个返回值丢失了。这是因为编译器不知道这个函数的返回值个数,函数调用如果不是在形参的最后,编译结果中只能占据一个形参位。
2015-01-08 20:47:24 1137
原创 使用zlib压缩和解压gzip
基于zlib,写了两个函数,可以压缩和解压gzip格式的char *数据。main里面进行了一下包装,实现了压缩和解压gzip文件的功能。linux上的标准gzip程序会将原始文件名记录在gzip文件的起始处,后面的内容则同下面程序的操作结果完全相同。所以标准gzip的压缩结果总是比下面程序的压缩结果多几个字节,不过这几个字节不影响解压。如果需要成功编译该程序,可能需要修改下面zlib
2015-01-07 17:02:12 2940
原创 FLEX&BISON:去除C代码注释和其中的多余空行
使用两个flex程序来完成。去除注释flex代码文件flex1:%option noyywrap%x COMMENT%{%}%%"//".* {}"/*" {BEGIN COMMENT;}"*/" {BEGIN INITIAL;}. {}. {printf("%s", yytext);}%%int main(int argc, char *argv[]){
2014-12-27 00:23:37 3493
原创 ubuntu下设置love2d开发环境
到love2d官网,打开linux的ppa页面,点击“Technical details about this PPA“,选择ubuntu版本,拷贝方框里面第一行(ubuntu13.10的是:deb http://ppa.launchpad.net/bartbes/love-stable/ubuntu saucy main)。打开设置里面的“软加和更新”,点”其他软件“,点”添加“,粘贴刚
2014-12-21 09:56:03 1549
原创 基于Lua的新语言NL
新语言使用nl来作为临时名称(new language的缩写),语法和特性基于Lua。nl语法和特性完全基于Lua的语法,修改如下:function使用def代替。字符串连接符去除,将任意类型的两个变量写在一起表示将其作为字符串连接,即a b// 等同于tostring(a) .. tostring(b)所以:"a" "b" => "ab""a"
2014-12-17 00:07:03 1110
原创 三、2D骨骼动画
spriter的官网下载在love2d中解析scml文件的工具 密码: llku编辑2D骨骼动画的免费软件似乎只有Spriter了,而且其Pro版本还要收费。游戏引擎依然是love2d,在love2d的官网论坛上我找到了解析Spriter动画文件的程序,在上面的链接下载。
2014-12-15 21:16:43 1504
原创 神奇的mongo:JS操作mongo的代码
mapreduceload("liyong11_lib.js")function prepare_data(db){ data = [ {price:1, name:"Simplify Your Life"}, {price:1, name:"Getting Things Done"}, {price:1, name:"The War of Art"}, {price:
2014-12-10 17:44:21 913
原创 神奇的mongo:找出某个集合中包含boolean数据的文档
db_name = "test"table_name = "test"db = connect( db_name )fields = ["field1", "field2"]for (field in fields){ field = fields[field] code ='typeof this.' + field + ' == "boolean"' c
2014-12-10 17:32:36 1171
原创 神奇的Lua:从pairs和ipairs解析for循环
如果不用pairs/ipairs/for如何来实现遍历数组的操作呢?下面实现了一下,没有实用意义,仅仅为了理解lua的for循环。-- 实现 pairs ipairs for 三个函数local function ipairs_next_func(tab, key) key = key + 1 value = tab[key] if value then return key, v
2014-12-10 14:21:44 6661
原创 神奇的linux:脚本
kill掉名字为app_name的程序:ps -ef | grep app_name| kill `awk '{print $2}'`监控程序并自动重启:RootDir=`pwd`check_if_running(){ BinName=$1 for pid in `ps aux | grep -v grep | grep $BinName | awk '{prin
2014-12-09 13:52:31 650
原创 C语言载入文件所有内容
code snippet:/** * @brief 将path文件所有内容载入dest缓冲区中 * @param[in] path 文件的完整路径或相对路径 * @param[out] dest 文件内存存储到这个缓冲区里面 * @param[in] dest_len 缓冲区字节数 * @return * 成功:返回传入的dest指针 * 失败:返回NULL
2014-12-01 11:04:03 783
原创 神奇的mongo:索引
db.collection.ensure( {'field':1} )db.collection.getIndexes()更新mongo时的条件字段最好建立个索引。十万条数据而已,更新2048个记录时,建不建索引就是1秒和1分钟的差距。血的教训
2014-11-27 11:23:23 621
原创 有符号长整数 转 无符号长整数
#include#includeint main(int argc, char *argv[]){ if (argc != 2){ printf("usage: ./exe number_string\n"); } const char *num_str = argv[1]; unsigned long num = strtoul(n
2014-11-20 10:26:03 2136
原创 python 日志处理
#!/usr/bin/pythonimport sysimport refrom optparse import OptionParserdef processor(filename, handlers, max_cnt): cnt = 0 if max_cnt is None: max_cnt = 10 line_no = 0 for line in open(filen
2014-11-04 12:00:55 758
转载 神奇的算法:二叉树性质
1.树的度:树节点的子树个数称为度。节点最大的度,称为树的度。2.树的深度|高度:其实,就是树的层数。根节点深度为1。3.二叉树的五条性质:(1)在二叉树的第i层上至多有2^(i-1)个节点。(i>=1)(2)深度为K的二叉树至多有2^K - 1 个节点。(K>=1)(3)叶子节点为N0,度为2的节点数为N1,则N0 = N1 + 1 。(4)具有N个节点的完全二叉树的深度
2014-10-24 16:41:49 808
转载 CPP(十一):STL实现的底层数据结构简介
原文:http://blog.csdn.net/huangkq1989/article/details/7277282C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾
2014-10-24 15:24:41 847
原创 二、行为树的原理和实现
使用BTEditor可以生成行为树的Lua代码,这里对生成的代码进行解析。(BTEditor的项目主页:https://github.com/bartoleo/BTEditor)要注意:1、行为树每个节点都需要向其父节点返回一个值,以允许父节点根据子节点运行情况继续运行。2、每棵树都有一个根节点,这个节点没有特殊意义。需要解析的行为树节点的解释:一、Composite No
2014-10-03 18:18:59 8375 3
原创 神奇的sh:如何输出所有参数?
[ "$a" == "$b" ] && [ "$a" == "$c" ] && { echo "a==b and a==c";} || [ "$a" != "$b" ] || [ "$a" != "$c" ] || { echo "a!=b and a!=c";} || { echo "other";}
2014-09-21 16:59:18 3625
原创 神奇的sh:实现svn一次性增加所有新增文件
svn st | awk '{if($1=="?"){cmd="svn add "$2; system(cmd); }}'
2014-09-17 21:20:56 652
原创 神奇的mongo:mongo JS mapreduce
示例代码:function print_collection(db, name){ var res = db[name].find() res.forEach(function(doc){ printjson(doc) })}function prepare_data(db){ data = [ {price:1, nam
2014-08-26 16:37:37 830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人