描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个拉风的名字.他希望这个名字可以包含N个关键字,并且总长度最短.例如包含关键字abcd.cdab和dabc的最短字符串是cdabcd. 给定N个关键字,请你帮小Hi找到最短的包含所有关键字的字符串.输出这个字符串的长度. 输入 第一行包含一个整数N.(1 <= N <= 15) 以下N行每行包含一个只包含小写字母的字符…
描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个完美的名字.首先小Hi给出了新项目的N个长度相等(均为L)的关键字,他希望能找到一个完美名字:这个名字的长度恰好为N+L-1,并且其中N个长度为L的子串恰好是给定的N个关键字. 例如对于关键字cat.ate.tea有完美的名字:catea. 给定N个长度相等的关键字,请你帮小Hi找到一个完美的名字. 输入 第一行包含一…
重用控件类代码的一个非常好的解决方案:所有一样的控件其名字均用同样的一个名字.只是在最后赋值的时候,将创建好的控件赋给我们需要用到的那个控件. - (id)initWithFrame:(CGRect)frame arrowImageName:(NSString *)arrow textColor:(UIColor *)textColor { if((self = [super initWithFrame:frame])) { self.autoresizingMask = UIViewAutor…
hihocoder1609 数组分拆II [dp] 给定数组,问有多少种拆法,使得每一段不出现重复的数字,且要保证分组数最少.(1e5) 题解: O(n) d[i]表示1~i最小划分的段数, f[i]表示1~i在最小划分段数下,划分的方案数 f[i] = sigma f[j], (d[i] = d[j]+1 && j+1 ~ i没有重复数字) hihocoder1644 完美命名的烦恼 [AC自动机,bfs] 给定n个长度为L的字符串,找到一个长度最短的字符串使得n个字符串都是其子串.求最…
不使用预处理功能 <?php $id = $_GET['id']; $dsn = 'mysql:host=localhost;port=3306;dbname=database'; try { $pdo = new PDO($dsn, $user, $pass); $sql = 'SELECT * FROM table where id = ' . $id; $stmt = $pdo->query($sql); $data = $stmt->fetchALL(PDO::FETCH_ASS…
以前KMP和后缀系列(主要是后缀数组,后缀自动机),都刷了一定数量的题,但是对于AC自动机,却有些冷落,罪过. 但是我感觉,在蓝桥杯比赛中AC自动机出现的概率比后缀系列大,简单的会考匹配,稍难一点会考AC自动机+DP ,AC自动机+矩阵乘法,或者套其他算法blabla... Trie图是AC自动机的改良版,不需要一直向上找fail.然后这里整理了一下Trie图的模板. HihoCoder1036:Trie图  (时间在hihocoder上面排第一). 题意:问长字符串里是否出现过字典里的单词.…
Symbol 书中讲了2部分. Symbol() Symbol 属性值. 完全两种画风的东西. 1. Symbol 首先他是一种全新的值. 不属于以前的任何一种 ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object) 他是一种不会重复的值. h.w(' Basic '); h.w('line'); var a…
命名约定 最重要的一致性规则是命名管理. 命名风格快速获知名字代表是什么东东: 类型? 变量? 函数? 常量? 宏 ... ? 甚至不需要去查找类型声明. 我们大脑中的模式匹配引擎可以非常可靠的处理这些命名规则. 命名规则具有一定随意性, 但相比按个人喜好命名, 一致性更重, 所以不管你怎么想, 规则总归是规则. 通用命名规则 Tip 函数命名, 变量命名, 文件命名应具备描述性; 不要过度缩写. 类型和变量应该是名词, 函数名可以用 "命令性" 动词. 如何命名: 尽可能给出描述性的…
Countries 题目链接:http://hihocoder.com/problemset/problem/1391 预处理+双指针 首先将A->B,B->A的导弹全部转化为B->A的导弹(因为不需要计算B承受的伤害,所以对于A->B的导弹,只需记录被B的防护罩返回来的导弹即可). 然后对于每个导弹计算将其反弹回B,A所需要的最小的防护罩区间[l,r](这个操作在O(1)的时间完成,画张图就很好推了) 于是问题就转化为了: 数轴上有一些固定区间,每个固定区间都有一个权值,现在有一…
Google C++编程风格指南 - 中文版 from http://code.google.com/p/google-styleguide/ 版本: 3.133原作者: Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray翻译: YuleFox yospaly项目主页: • Google Style Guide • Google 开源项目风格指南 - 中文版 PS: 可以对比 Linu…