数据结构第4章 串习题课

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <iostream> using namespace std; #define MaxLen 1000 int main(){ int T[256]={0},num=0,i; char s[MaxLen]={0}; cin.getline(s,MaxLen); for(i=0;i<strlen(s);i++) T[s[i]]++; for(i=0;i<256;i++) if(T[i]>0) { num++; cout<<char(i)<<" "<<T[i]<<endl; } cout<<"total:"<<num<<endl; return 0; }
习题课
第4章 串
4.5 试问执行以下函数会产生怎样的输 出结果?
void demonstrate(){ StrAssign(s,’THIS IS A BOOK’); Replace(s,SubString(s,3,7),’ESE ARE’): StrAssign(t,Concat(s,’S’)); StrAssign(u,’XYXYXYXYXYXY’); StAssign(v,SubString(u,6,3)); StrAssign(w,’W’); printf(‘t=‘,t,’v=‘,v,’u=‘,Replace(u,v,w)); }// demonstrate 1. s=THIS IS A BOOK 2. s=THESE ARE A BOOK 3. t=THESE ARE A BOOKS 4. u=XYXYXYXYXYXY 5. v= YXY 6. w=W 7. Replace(u,v,w)=XWXWXW //1 //2 //3 //4 //5 //6 //7
百度文库
4.20 编写算法,从串s中删除所有和串t 相同的子串(0882079提交)
#include <stdio.h> void delstring(char S[],int Slen,int pos,int len) { char *start,*end; start=&S[pos+len-1]; end=&S[Slen-1]; for(;start<=end;start++) *(start-len)=*start; *(start-len)='\0'; } void main() { int i,j,alen,blen,pos ; char a[100],b[100]; gets(a); gets(b); for(j=0;a[j]!='\0';j++) ; for(j=0;b[j]!='\0';j++) ; alen=j; blen=j; i=0;j=0; while(i<alen) { if(a[i]==b[j]) {++i;++j;} else {i=i-j+1;j=0;} if(j>=blen) { delstring(a,alen,i-blen+1,blen); alen=alen-blen; i=i-j+1; } } puts(a); }
输出: t=THESE ARE A BOOKS v=YXY u=XWXWXW
4.8 写出next
模式串 : ADABBADADA A D A B B A D A D A Next 0 1 1 2 1 1 2 3 4 3 Nextvlue 0 1 0 2 1 0 1 0 4 0
4.18 编写算法,求串s所含不同字符的 总数和每种字符的个数
相关文档
最新文档