C++
神州永泰
这个作者很懒,什么都没留下…
展开
-
java中substring与c++中substr的区别
1 Java 的substringsubstring有2种用法:例:string s = “0123456789”;String sub1=s. substring(3);// 只有一个数字3,表示从下标为3开始一直到结尾的所有字符:sub1 = “3456789”。string sub2 = s. substring (3, 3); //从下标为3开始截取到下标4之前的字符,不包括下标4...原创 2020-05-03 13:08:53 · 559 阅读 · 1 评论 -
哈夫曼树之C++实现
关于哈夫曼树的讲解请参考上篇《三步学通哈夫曼树》(https://blog.csdn.net/helloworldchina/article/details/105210054),这里笔者仅补充一下C++代码的实现。见下:1 c++代码#include <iostream>#include <iostream>#include <iomanip>usi...原创 2020-03-30 22:38:20 · 1289 阅读 · 1 评论 -
三步学通哈夫曼树
前言哈夫曼树的历史由来。1951年,哈夫曼在麻省理工学院(MIT)攻读博士学位,他和修读信息论课程的同学得选择是完成学期报告还是期末考试。导师罗伯特•法诺(Robert Fano)出的学期报告题目是:查找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。哈夫曼使用自底向上的方...原创 2020-03-30 22:11:25 · 2959 阅读 · 0 评论 -
KMP之C++实现
关于KMP的讲解请参考上篇《三步学通KMP》,这里笔者仅补充一下C++代码的实现,见下:1 next[]数组代码:int* KmpNext(string str){ int* next = new int[str.size()]; next[0] = 0; for(int j = 1,k = 0; j < str.size(); j++) { ...原创 2020-02-29 11:21:07 · 312 阅读 · 0 评论 -
三步学通KMP
前言谈到字符串模式匹配算法,莫过于最经典的KMP算法,它由D.E.Knuth,J.H.Morris和V.R.Pratt三位大牛于1977年联合发表提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法),KMP算法可以在O(n+m)的时间复杂度以内完成字符串的匹配操作,其核心思想在于:当一趟匹配过程中出现字符不匹配时,不需要回溯主串的指针,而是利用已经得到的“部分匹配”,将模式串尽可能...原创 2020-02-23 20:40:07 · 4886 阅读 · 8 评论