函数题:多行字符串的排序与压缩
本题要求实现不超过N个字符串的排序与压缩的函数。先调用 ReadString函数输入n个只包含英文字母的字符串,然后调用Sort函数对这n个字符串进行排序,再调用Zip函数对这n个字符串分别进行压缩,压缩规则是:如果某个字符x连续出现m(m>1)次(m可能是个很大的数),则将这m个字符x替换为mx的形式;否则保持不变。
### 函数接口定义:
c++
void ReadString( char (*s)[MAXS], char ** patr, int n ); //输入n个字符串
void Sort(char **s, int n ); //按字典顺序进行排序
void Zip( char **ps,int n); //对字符串中相同的相邻字符进行压缩
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <string.h>
#define MAXS 20000
#define N 30
void ReadString( char (*s)[MAXS], char ** patr, int n ); //输入n个字符串
void Sort(char **s, int n ); //按字典顺序进行排序
void Zip( char **ps,int n); //对字符串中相同的相邻字符进行压缩
int main()
{
char s[N][MAXS], *patr[N];
char **ppar=patr;
int i,n;
scanf("%d",&n);
getchar();
ReadString(s,ppar,n);
Sort(ppar,n);
printf("排序前的字符串:\n");
for(i=0;i<n;i++)
printf("%s\n", *(s+i));
printf("排序后的字符串:\n");
for(;ppar<patr+n;ppar++)
printf("%s\n", *(ppar));
ppar=patr;
Zip(ppar,n);
printf("压缩后的字符串:\n") ;
for(;ppar<patr+n;ppar++)
printf("%s\n", *(ppar));
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
4
aadcccbbb
aabcccddd
aaacccddd
aaaccbccc
### 输出样例:
out
排序前的字符串:
aadcccbbb
aabcccddd
aaacccddd
aaaccbccc
排序后的字符串:
aaaccbccc
aaacccddd
aabcccddd
aadcccbbb
压缩后的字符串:
3a2cb3c
3a3c3d
2ab3c3d
2ad3c3b
答案:若无答案欢迎评论
### 函数接口定义:
c++
void ReadString( char (*s)[MAXS], char ** patr, int n ); //输入n个字符串
void Sort(char **s, int n ); //按字典顺序进行排序
void Zip( char **ps,int n); //对字符串中相同的相邻字符进行压缩
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <string.h>
#define MAXS 20000
#define N 30
void ReadString( char (*s)[MAXS], char ** patr, int n ); //输入n个字符串
void Sort(char **s, int n ); //按字典顺序进行排序
void Zip( char **ps,int n); //对字符串中相同的相邻字符进行压缩
int main()
{
char s[N][MAXS], *patr[N];
char **ppar=patr;
int i,n;
scanf("%d",&n);
getchar();
ReadString(s,ppar,n);
Sort(ppar,n);
printf("排序前的字符串:\n");
for(i=0;i<n;i++)
printf("%s\n", *(s+i));
printf("排序后的字符串:\n");
for(;ppar<patr+n;ppar++)
printf("%s\n", *(ppar));
ppar=patr;
Zip(ppar,n);
printf("压缩后的字符串:\n") ;
for(;ppar<patr+n;ppar++)
printf("%s\n", *(ppar));
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
4
aadcccbbb
aabcccddd
aaacccddd
aaaccbccc
### 输出样例:
out
排序前的字符串:
aadcccbbb
aabcccddd
aaacccddd
aaaccbccc
排序后的字符串:
aaaccbccc
aaacccddd
aabcccddd
aadcccbbb
压缩后的字符串:
3a2cb3c
3a3c3d
2ab3c3d
2ad3c3b
答案:若无答案欢迎评论