c++笔试题目
记录一下自己做的c++题目
1.实现压缩和解压功能
实现一个压缩解压缩功能,实现压缩输入a-zA-Z的字符串,同时将压缩后的数据能解压缩为输入的字符串;
压缩及解压缩都实现用户主动输入。
例如:压缩:输入aaabbbcddcc 输出压缩后字符串为3a3bc2d2c
解压缩:输入3a3bc2d2c 解压为 aaabbbcddcc
测试用例:压缩输入 yiyyyoiiiccccsss 输出 yi3yo3i4c3s
压缩输入 yyy242342yysysy 输出 不合法输入
解压缩 输入3aa2bc3dd 解压输出不合法的解压输入
#include <iostream>
#include<string>
using namespace std;
void compress_ZIP(string str);
void decompress_ZIP(string str);
void compress_ZIP(string str) //压缩
{
string zip;
int num = 1;
int flag = 1;
for(int i=0;i<str.length();i++)
{
if(str[i]==str[i+1])
num++;
else if ((isdigit(str[i]))&&isdigit(str[i+1]))
{
flag = 0;
break;
}
else
{
string tmp = to_string(num);
zip = zip + str[i];
if(num!=1)
zip = zip + tmp;
num = 1;
}
}
for(int i=0;i<str.length();i++)
{
if(