知识大全 数据结构考研分类复习真题 第四章 答案[21]
Posted 字符
篇首语:世事洞明皆学问,人情练达即文章。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第四章 答案[21]相关的知识,希望对你有一定的参考价值。
[题目分析]实现字符串的逆置并不难 但本题 要求不另设串存储空间 来实现字符串逆序存储 即第一个输入的字符最后存储 最后输入的字符先存储 使用递归可容易做到
void InvertStore(char A[])//字符串逆序存储的递归算法 char ch; static int i = ;//需要使用静态变量 scanf ( %c &ch); if (ch!= ) //规定 是字符串输入结束标志 InvertStore(A); A[i++] = ch;//字符串逆序存储 A[i] = \\ ; //字符串结尾标记 //结束算法InvertStore
串s 可以看作由以下两部分组成 caabcbca a 和 ca a 设这两部分分别叫串s 和串s 要设法从s s 和s 中得到这两部分 然后使用联接操作联接s 和s 得到s
i=index(s s ); //利用串s 求串s 在串s中的起始位置 s =substr(s i length(s) i + ); //取出串s j=index(s s ); //求串s 在串s中的起始位置 s串中 bcb 后是 ca a ) s =substr(s j+ length(s) j ); //形成串s s =concat(s s );
[题目分析]对读入的字符串的第奇数个字符 直接放在数组前面 对第偶数个字符 先入栈 到读字符串结束 再将栈中字符出栈 送入数组中 限于篇幅 这里编写算法 未编程序
void RearrangeString()//对字符串改造 将第偶数个字符放在串的后半部分 第奇数个字符前半部分 char ch s[] stk[]; //s和stk是字符数组(表示字符串)和字符栈 int i= j; //i和j字符串和字符栈指针 while((ch=getchar())!= # )// # 是字符串结束标志 s[i++]=ch; //读入字符串 s[i]= \\ ; //字符数组中字符串结束标志 i= ;j= ; while(s[i]) //改造字符串 if(i% == ) stk[i/ ]=s[i]; else s[j++]=s[i]; i++; //while i ; i=i/ ; //i先从 \\ 后退 是第偶数字符的个数 while(i> ) s[j++]=stk[i ] //将第偶数个字符逆序填入原字符数组
cha138/Article/program/sjjg/201311/22604相关参考