字符串学习(3)
来源:互联网 发布:淘宝如何推广自己的店铺 编辑:程序博客网 时间:2024/06/05 03:52
1、grep命令是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。全称:global regular expression print,表示全局正在表达式版本,使用权限是所有用户。
Grep用来查找字符串,find用来查找单个字符。
2、卡特兰数公式h(n)=C(2n,n)/(n+1),适用于出栈情况求和。
3、哈夫曼编码是一种无损二进制编码算法,其加权路径长度最小,字符串”alibaba”的二进制哈夫曼编码有 13 bit。
分析一:
构造哈夫曼树的最短路径,越接近根节点,权值越小,a,b,l,i从多到少,从根结点开始,左0右1构造哈夫曼树,依次为
a(0),b(10),l(110),i(111). 这样哈夫曼编码为0 110 111 10 0 10 0共13位,此为最短。
分析二:
哈夫曼树叶叫做最优二叉树,是权值越大的点离根结点越近,导致整个树权值最小。
选择最小的两个点作为左右结点,然后和作为父节点,在剩下的点以及父节点中选择最小的两个依次构造,形成哈夫曼树左边数值为0,右边是1.
哈夫曼编码是将各个点的值加起来最小,长度计算就是把各个点的值乘以路径长。
例如a(3),b(2),l(1),i(1);
长度就是3(l+i)+2b+1a=13
4、已知串S=”aaab”,其中Next数组值为:0123
分析:
前两位:next数组值前两位一定是01,即aaab的前两位aa对应01,即next数组第1、2位为0和1;
第三位:3a前面是2a(2a表示序号为2的a),2a的next数组值为1,将2a与1a相比较,两者都是a,所以3a的next值为2a的next值加1,即2;
第四位:4b前3a的next值为2,3a与2a相比较,二者相同,则其next值为2a的next值加1,即为3.
所以结果为0123.
如果比较的时候碰到与前一位字符“不同“时候,就要以前一位的next值为序号,找到这个序号对应的字符,再进行比较,如果与之相同,就用这一位的next值+1;如果仍然不同,就继续重复这个操作直到这个操作找到相同字符为止。如果一直重复到第一位还找不到,则将所求位的next值置为1。
分析二:
- 字符串学习(3)
- (Python学习3)字符串对象
- python学习笔记(3)字符串
- Shell学习--(3)替换,字符串,数组
- python学习笔记3(字符串)
- swift学习笔记(3)-字符串
- 字符串学习3
- 字符串学习学习(1)
- 字符串学习(1)
- 字符串学习(2)
- 字符串学习(4)
- python学习(字符串)
- 学习笔记3 下午 字符串
- w3shool学习3-PHP 字符串
- Python学习笔记3--字符串
- python学习笔记3--字符串
- oc 学习(3) 字符串方法
- Python学习3:字符串操作
- jsp页面更改某些链接
- echarts
- [Updating] Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) 解题报告
- SAS
- Communities Settings And Customize Community URL In Salesforce
- 字符串学习(3)
- 用编译好的源码包在linux下安装NCL
- Python数据分析之NumPy(Mooc学习笔记1,ndarray)
- 函数
- bzoj 2090: [Poi2010]Monotonicity 2 动态规划+线段树
- java list排序 -List.stream()
- Java之IO流
- 使用IntelliJ IDEA 15和Maven创建Java Web项目
- Problem : STL——表达式求值