题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 大意:就是找出字符串中最大的回文子字符串 吐槽: 这应该是一道经典的算法题,可是我还是没有什么好办法,可见我真的是太菜了。哎。。。用了一个O( n^2 )的解法,妥妥的超时了。。。后来看了网上的有关文章和discuss里面的代码,修改了版本。 暴力超时版Python代码: (肯定是我自己写的) class Solution(object): def longestPalindrome(self, s): longest_str = “” longest_len = 0 for i in range(len(s) – 1): […]

题目: Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For “bbbbb” the longest substring is “b”, with the length of 1. 大意:给出一个字符串,找出不包含重复字母的最长字串,输出字符串的长度。 这道题是一个字符串的题,好久不写明显手生,所以一些细节耗费了很多时间去调试,希望自己慢慢熟悉起来。 思路: 我的大概思路就是: * 对字符串进行一次遍历,用一个大小为256(ascii最多有256种字符)数组记录每个字母最后一次的下标。 * 当当前字符以前出现过时就覆盖原来的数组元素,并且更新start值。 * 每次循环时检查当前下标i-开始下标start和一个记录当前最大串长度的max变量的关系,将max保持或更新。 * 需要注意的是,我更新start和max是在检测到重复字母时进行的,而最后一个字符不一定和前边重复,所以循环外要附加一次更新max的操作。 […]

万事开头难,算是开始刷leetcode了吧,不知道能不能坚持下去!在这放下一句,不坚持是小狗!——jc,15.10.25 第一题能就是一个纯属熟悉环境,从网上找了python版答案走了一遍流程: 题目 Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and […]

题目 You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> […]

博客由来 今年暑假的时候就听说github上可以免费搭建静态博客。当时虽然看了看,但还是因为服务器、网页等知识欠缺太多,几次想动手都没有坚持下去。 最近看了看Nginx的有关知识,算是对http服务器的搭建有了个大概了解。后来看到了docker,就买了《第一本docker书》这本书看了看,发现上边有些例子写的挺不错,其中就有jekyll+Apache搭建静态博客的例子,照着做一遍后,我决定用Nginx作服务器,用docker做载体,用jekyll作为网站生成工具,将这个静态博客搭建在阿里云服务器上。 于是这个博客最终在10月18日时算是初步搭建成功了,现在写这篇总结应该是算有点晚,但是由于很多细节我还欠缺很多,而且搭建博客所涉及的方面太多,很多部分我只是照搬他人成果,所以关于一些细节问题以后还要深入学习,然后再总结出来,请大家和自己期待~ 资源和费用 服务器: 我用了最便宜的那种阿里云服务器,但是搭这个博客绰绰有余。 价格:学生优惠的9.9元/月。 域名: 在万网申请的域名(貌似和阿里云并在一起了,所以做域名映射非常友好简单) 价格:买了一年,5元/年(但是再续费就贵多了) 代码托管(不是必要的): 用于存我的博客目录,包括这个小的静态网页的所有的一切。 价格:免费(github student pack) ——如此看来,搭建个博客费用是很低的,一个月10块。 组成一 :jekyll jekyll是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如Disqus。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。 ——百度百科 个人感觉,jekyll是一个像使用模板一样简单的工具,只要你按照他的文件夹结构,将对应的文件放到对应的位置,然后jekyll build一下,你的网站就生成好了!。。而且配置可以集中在一个_config.yml文件中,真的很方便,即使像我一样以前没有接触过,把别人写的博客目录拿过来,也可以仿照着改成自己想要的样子。 所以,我这个博客采用的就是@RainyAlley提供的模板(github页面)目录,然后做了一些自己的修改。 关于jekyll的介绍和文档和介绍,这个是官网的中文版: http://jekyll.bootcss.com/ 组成二 :nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布78。 ——百度百科 nginx肯定比jekyll的知名度高很多,他就像apache是个服务器软件。nginx可以做网站服务器,反向代理(过几天我还要写个关于反向代理的总结,这里先占位。。过几天贴链接),邮件服务器…… 在搭建本博客中,nginx起的作用就是一个静态网站服务器,只要在相关的配置文件中写好网站的目录,写好对应的域名,就可以运行起来了~~ 组成三 :docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 […]

第一次构建Docker镜像,想照着书弄个jekyll的镜像玩玩,结果两天了,到现在还没成功。记录下国内环境实践和书本上的不同。。。 首先官方的apt-get源太慢了 要换成国内的速度还可以接受一点:(原文链接) 做法: Dockerfile 中 RUN apt-get update 前添加一句: RUN sed -i ‘s/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.163\.com\/ubuntu\//g’ /etc/apt/sources.list gem国内源貌似也不行 (原文链接) 做法: Dockerfile中添加: RUN gem sources –remove http://rubygems.org/ RUN gem sources -a https://ruby.taobao.org/ RUN gem sources -l

准备工作 环境:Ubuntu 14.04 32bit 工具:dnspython 对应的shell工具:nslookup dig等 dns预备知识: 常用资源记录RR(Resource Records)类型 A记录: 主机名–> IP地址 MX记录: 定义邮件服务器域名 CNAME: 域名间映射 PTR: IP地址 –>主机名(反向解析) 更详细介绍参考博文《 [DNS]常见资源记录定义(Resource Record) 》 用法举例 查询A记录 import dns.resolver domain = raw_input(‘input an domain:’) A = dns.resolver.query(domain, ‘A’) for i in A.response.answer: for j in i.items: if ‘address’ in dir(j): print j.address else: print ‘failed to […]

环境:ubuntu 14.04 32bit 工具:psutil 对应的shell工具:ps top lsof netstat ifconfig who df kill nice free ionice iostat iotop uptime pidof tty taskset pmap 安装: 采用pip可以安装pip install psutil。(注意需要安装python-dev: sudo apt-get install python-dev) 用法举例: 获取信息 cpu信息: psutil.cpu_times() #cpu完整信息 psutil.cpu_count(logical=False) #cpu物理个数 logical默认为True即cpu逻辑个数 内存信息: mem = psutil.virtual_memory() <!–more–> print mem.total print mem.free print mem.swap_memory() # sswap分区信息 磁盘信息 网络信息 其他信息 进程管理 […]

连接 以电脑为终端,采用基于PL2302芯片的串口转USB线链接电脑和试验箱,MAC OS X系统需要安装芯片的驱动(文件名md_PL2303_MacOSX10_6_dmg_v1_4_0.zip)通过文件内说明文档进行相关设置,然后可以连接成功。 Mac终端下用screen命令实现试验箱终端功能. screen /dev/tty.usbserial 115200 >注意拔下USB时要用A(ctrl+A)+k命令退出screen,否则会导致OS X 死机(不明原因)。如果没有退出screen直接将终端窗口关闭了,用命令ps|grep tty查找相应进程进程ID然后结束掉它(kill PID),这样再拔出USB就不会死机了。 交叉编译 需要安装arm-none-linux-gnueabi-gcc,相当于linux的arm-linux-gcc。使用方法类似gcc. arm-none-linux-gnueabi-gcc test.c -o test ftp通信传输文件 通过以太网口连接试验箱和mac,终端修改试验箱ipconfig eth0 -i 192.168.1.101 -m 255.255.255.0 -g 192.168.1.1然后执service network restart、Mac自身网络偏好设置修改两者IP使其在同一区段(192.168.1.102) 在Mac终端下用ftp命令ftp 192.168.1.101登陆试验箱linux,用户名anonymous(匿名),密码任意。 put命令具体使用方法可以参考博文《Linux 终端访问 FTP 及 上传下载 文件》 上传文件put test test 在终端上执行程序 增加可权限chmod +x test 执行:./test