problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1078 命名空间参考

1078 字符串压缩与解压 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1078, case1)
 
 TEST (b1078, case2)
 

详细描述

1078 字符串压缩与解压

函数说明

◆ main()

int pat::b::b1078::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp2691 行定义.

2691 {
2692 char op;
2693 cin >> op;
2694 char str[1024];
2695 cin.getline(str, 1024);
2696 cin.getline(str, 1024);
2697 if(op == 'C') {
2698 for(int i = 0; i < strlen(str); i++) {
2699 int n = 1;
2700 while(i + 1 < strlen(str) && str[i] == str[i + 1]) {
2701 n++;
2702 i++;
2703 }
2704 if(n > 1) {
2705 cout << n;
2706 }
2707 cout << str[i];
2708 }
2709 } else {
2710 //op=='D'
2711 for(int i = 0; i < strlen(str); i++) {
2712 if(isdigit(str[i]) != 0) {
2713 stringstream ss;
2714 for(; i < strlen(str); i++) {
2715 if(isdigit(str[i]) != 0) {
2716 ss << str[i];
2717 } else {
2718 break;
2719 }
2720 }
2721 int n;
2722 ss >> n;
2723 for(int j = 0; j < n; j++) {
2724 cout << str[i];
2725 }
2726 } else {
2727 cout << str[i];
2728 }
2729 }
2730 }
2731 return 0;
2732 }

被这些函数引用 TEST().

◆ TEST() [1/2]

pat::b::b1078::TEST ( b1078  ,
case1   
)

在文件 pat_test.cpp1288 行定义.

1288 {
1289 istringstream in("C\n"
1290 "TTTTThhiiiis isssss a tesssst CAaaa as");
1291 auto out = ostringstream();
1292 main(in, out);
1293 const auto ans = out.str();
1294 ASSERT_EQ("5T2h4is i5s a3 te4st CA3a as", out.str());
1295 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

pat::b::b1078::TEST ( b1078  ,
case2   
)

在文件 pat_test.cpp1297 行定义.

1297 {
1298 istringstream in("D\n"
1299 "5T2h4is i5s a3 te4st CA3a as10Z");
1300 auto out = ostringstream();
1301 main(in, out);
1302 const auto ans = out.str();
1303 ASSERT_EQ("TTTTThhiiiis isssss a tesssst CAaaa asZZZZZZZZZZ", out.str());
1304 }

引用了 main().