`

【编程珠玑】第十五章 字符串

 
阅读更多

一,概述

1)统计每个字符串出现的个数的程序实现,利用Map容器:


为了减少处理时间,可以建立散列表。其中内存分配函数malloc 被改为自定义更高效的 nmalloc和 smalloc

特别注意:以上为C程序,不是C++

2)利用Set容器,排序输出各个字符串(按字母表顺序)



3)问题:给定一个文本文件(很长的字符串)作为输入,输出最长的重复子字符串。

例如:输入”My name is xiao tian,so you can call me xiao tian“

输出”xiaotian“为最长重复子字符串


实现:”后缀数组“的简单数据结构来处理这类问题。

char *a="banana"

a[0]=banana

a[1]=anana

a[2]=nana

a[3]=ana

a[4]=na

a[5]=a

方案一:双重for循环比较每个字符串,找到最长重复子字符串

方案二:对后缀数组排序,然后比较相邻字符串间相同的字符个数。最后得到文本文件最长的重复子字符串


程序一:

程序二:

4)生成随机文本

基于字母:下一个字符设置为 前一个字母的随机函数。或者是下一个字母是前n个字符的随机函数

基于单词:1>随机输出字典中单词

2>随机打开一页选一个字母,再随机打开另一页找到第一个字母后的单词为输出单词


二,习题

1)许多文档系统提供了去除所有格式命令,查看原始文本表示的方法。

2)将最常见的单词插入set容器中,然后校验每个单词是否在set容器中,有说明拼写正确,否则有可能错误

3)采取的策略是,一次申请多个内存空间。只有上一次用光时,再次申请。减少了申请内存次数

5)如何将单词按频率递减顺序输出,并输出M个最常见单词(频率最高的M个单词)

将本博客最上面,采用Map容器实现


8)如何找出出现超过M次的最长字符串

将字符串后缀数组写出,并排序。每次比较M个相邻字符串,求其公共字符串。

9)给定两个输入文本,找出它们共有的最长字符串。

关键代码:if(s1[i+len] == s2[j])


利用本章的方法:给出两个字符串后缀,标记每个后缀属于第一个字符串还是第二个字符串。从相邻的N个字符串找公关字符串,保证这N个字符串两个都有。







分享到:
评论

相关推荐

    编程珠玑源码下载编程珠玑书后源代码

    编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码

    编程珠玑 编程珠玑 编程珠玑 编程

    我觉得不错,和大家分享! 编程珠玑 编程珠玑 编程珠玑

    编程珠玑编程珠玑

    编程珠玑编程珠玑

    编程珠玑之第二章questionC 测试数据

    本资源只是“编程珠玑之第二章questionC: 求变位词问题”的简单的测试数据。

    编程珠玑 编程珠玑续

    编程珠玑和编程珠玑续两本,上传赚点分,填充填充填充

    编程珠玑(续)

    《编程珠玑(续)》是计算机...书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,如一串串珠玑展示给程序员。  《编程珠玑(续)》适合各级程序员阅读参考。

    《编程珠玑》中的最优性能效率最高字符串反转算法

    《编程珠玑》中的最优性能效率最高字符串反转算法

    编程珠玑续本

    编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本

    编程珠玑 第二版 修订版

    第15章 字符串 153 15.1 单词 153 15.2 短语 156 15.3 生成文本 158 15.4 原理 163 15.5 习题 163 15.6 深入阅读 164 第1版跋 165 第2版跋 167 附录A 算法分类 169 附录B 估算测试 173 附录C 时空开销模型...

    编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式

    编程珠玑II(编程珠玑·续) 扫描版6.56M pdf格式

    编程珠玑及其源码

    编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...

    《编程珠玑》源代码

    《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...

    编程珠玑总结笔记

    编程珠玑是一本提升coding能力不可多得的好书,看书时,可以结合这个笔记,突出重点。

    编程珠玑+续

    编程珠玑+续

    编程珠玑习题集锦

    书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程...《编程珠玑(第2版)》是计算机科学方面的经典名著。

    编程珠玑高清pdf

    这本书是《编程珠玑》高清pdf,如有侵权请告知。

    编程珠玑(第二版)答案

    编程珠玑(第二版)答案

    编程珠玑.pdf

    第15章 选择 141 15.1 问题 141 15.2 程序 142 15.3 运行时间分析 145 15.4 原理 148 15.5 习题 149 15.6 深入阅读 151 附录A C和Awk语言 153 附录B 一个子程序库 157 部分习题答案 165 索引 181

Global site tag (gtag.js) - Google Analytics