《数据结构习题解答》习题5解答

第2章数组 5-1字符串的替换操作 replace( String&s, String&t, String&v)是指:若t是s的子串,则用串ν替换 串t在串s中的所有出现:若t不是s的子串,则串s不变。例如,若串s为“ aabbabcbaabaaacbab”,串 t为bab”,串v为"abdc”,则执行 replace操作后,串s中的结果为 aababdccbaabaaacabdc”。试利用字 符串的基本运算实现这个替换操作。 【解答】 String String Replace( String & t String &v)i if(( int id =Find(t)=-1) ∥没有找到,当前字符串不改,返回 i cout include " string. h ∥s是输入字符串,数组A[]中记录字符串中有多少种不同的字符,C[卫中记录每 ∥一种字符的出现次数。这两个数组都应在调用程序中定义。k返回不同字符数。 h(); if( !len)i cout <<"The string is empty. "<<endl; k=0; return else A[0=s[0: C[0=1: k=1; /语句s是串的重载操作 for (i=1; i< len; i++)C[=0; 初始化 for(1=1; i< len; i++)i /检测串中所有字符* whle(j<k&&A=s[)j+;检查s是否已在A[]中* if (j==k)Akk]=s0; C[k]++ k++) /s[从未检测过*
第 2 章 数组 5 5-1 字符串的替换操作 replace (String &s, String &t, String &v)是指:若 t 是 s 的子串,则用串 v 替换 串 t 在串 s 中的所有出现;若 t 不是 s 的子串,则串 s 不变。例如,若串 s 为“aabbabcbaabaaacbab”,串 t 为“bab”,串 v 为“abdc”,则执行 replace 操作后,串 s 中的结果为“aababdccbaabaaacabdc”。试利用字 符串的基本运算实现这个替换操作。 【解答】 String & String :: Replace ( String & t, String &v) { if ( ( int id = Find ( t ) ) == -1 ) //没有找到,当前字符串不改,返回 { cout include "string.h" void frequency( String& s, char& A[ ], int& C[ ], int &k ) { // s 是输入字符串,数组 A[ ]中记录字符串中有多少种不同的字符,C[ ]中记录每 //一种字符的出现次数。这两个数组都应在调用程序中定义。k 返回不同字符数。 int i, j, len = s.length( ); if ( !len ) { cout << "The string is empty. " << endl; k = 0; return; } else { A[0] = s[0]; C[0] = 1; k = 1; /*语句 s[i]是串的重载操作*/ for ( i = 1; i < len; i++ ) C[i] = 0; /*初始化*/ for ( i = 1; i < len; i++ ) { /*检测串中所有字符*/ j = 0; while ( j < k && A[j] != s[i] ) j++; /*检查 s[i]是否已在 A[ ]中*/ if ( j == k ) { A[k] = s[i]; C[k]++; k++ } /*s[i]从未检测过*/

第2章数组 else C[l++ /s[已经检测过* 测试数据s=" cast cast sat at a tasal0 测试结果 【另一解答】 const int charnumber =128 /ASCI码字符集的大小*/ void frequency( String& S, int& C[& ∥s是输入字符串,数组C[]中记录每一种字符的出现次数。 for( int 1=0; i0)cout<"("<i<"):Ⅶ"<C<""; 5-3设串s为“aab”,串t为“ ababa”,串r为“ abclaab babcabaacbacba”,试分别计算它们的失效函数 f()的值。 【解答】 fO
第 2 章 数组 6 else C[j]++; /*s[i]已经检测过*/ } } } 测试数据 s = "cast cast sat at a tasa\0" A c a s t b C 2 7 4 5 5 【另一解答】 include include "string.h" const int charnumber = 128; /*ASCII 码字符集的大小*/ void frequency( String& s, int& C[ ] ) { // s 是输入字符串,数组 C[ ]中记录每一种字符的出现次数。 for ( int i = 0; i 0 ) cout << "( " << i << " ) : \t" << C[i] << "\t"; } 5-3 设串 s 为“aaab”,串 t 为“abcabaa”,串 r 为“abcaabbabcabaacbacba”,试分别计算它们的失效函数 f (j)的值。 【解答】 j 0 1 2 3 j 0 1 2 3 4 5 6 s a a a b t a b c a b a a f (j) -1 0 1 -1 f (j) -1 -1 -1 0 1 0 0 测试结果
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构习题解答》习题4解答.doc
- 《数据结构习题解答》习题3解答.doc
- 《数据结构习题解答》习题2解答.doc
- 《数据结构习题解答》习题1解答.doc
- 《数据结构习题解答》习题9解答.doc
- 《电脑办公教程》ppt电子书.doc
- 《计算机文化基础》课程电子教案(PPT课件讲稿)第第五讲 计算机网络基础.ppt
- 《计算机文化基础》课程电子教案(PPT课件讲稿)第第四讲 中文电子表格.ppt
- 《计算机文化基础》课程电子教案(PPT课件讲稿)第第三讲 中文文字处理系统.ppt
- 《计算机文化基础》课程电子教案(PPT课件讲稿)第第二讲 基础知识.ppt
- 《计算机文化基础》课程电子教案(PPT课件讲稿)第一讲 操作系统 Operating System.ppt
- 莆田学院:《计算机网络技术基础》校园网网络结构拓扑图.doc
- 莆田学院:《计算机网络技术基础》第五章 网络连接设备与技术.ppt
- 莆田学院:《计算机网络技术基础》路由器原理及路由协议.doc
- 莆田学院:《计算机网络技术基础》交换机工作原理.doc
- 莆田学院:《计算机网络技术基础》宽带接入技术扫描.doc
- 莆田学院:《计算机网络技术基础》SyGate、WinGate和WinRoute之简单比较.doc
- 莆田学院:《计算机网络技术基础》OSPF协议路由协议.doc
- 莆田学院:《计算机网络技术基础》第一章 计算机网络概论.doc
- 莆田学院:《计算机网络技术基础》第五章 网络连接设备与技术.doc
- 《数据结构习题解答》习题6解答.doc
- 《数据结构习题解答》习题7解答.doc
- 《数据结构习题解答》习题8解答.doc
- 《计算机硬件认识、组装及系统故障诊断》讲义.pdf
- 《管理信息系统概论》课程PPT讲义(MIS)电子课件(共十讲).ppt
- 《Linux操作系统》课程教学资源(PPT课件讲义,共五部分).ppt
- 《Internet网络技术与应用》第十章 网页制作语言.ppt
- Internet网络技术与应用_第1章 概述.ppt
- 《Internet网络技术与应用》第2章 Internet技术基础.ppt
- 《Internet网络技术与应用》第3章 Internet接入方式.ppt
- 《Internet网络技术与应用》第4章 万维网WWW.ppt
- 《Internet网络技术与应用》第5章 电子邮件E-mail.ppt
- 《Internet网络技术与应用》第6章 FTP文件传送.ppt
- 《Internet网络技术与应用》第7章 电子公告板.ppt
- 《Internet网络技术与应用》第8章 网上娱乐.ppt
- 《Internet网络技术与应用》第9章 Internet网络安全.ppt
- 番禺职业技术学院:《玩具制图与CAD》课程教学资源(PPT课件)小结.ppt
- 番禺职业技术学院:《玩具制图与CAD》课程教学资源(PPT课件)第一章 绘图基本知识与基本技能(1.3)平面几何图形的画法.ppt
- 番禺职业技术学院:《玩具制图与CAD》课程教学资源(PPT课件)第一章 绘图基本知识与基本技能(1.4)平面几何图形的分析与绘图步骤.ppt
- 番禺职业技术学院:《玩具制图与CAD》课程教学资源(PPT课件)第三章(3.1)三面投影与三视图.ppt