1. 程式人生 > >1078 字符串壓縮與解壓

1078 字符串壓縮與解壓

names size ostream 位數 i++ col target cout amp

題目鏈接:https://pintia.cn/problem-sets/994805260223102976/problems/994805262018265088

題解:

 1 #include <iostream>
 2 #include<cstdio>//getchar所需的頭文件
 3 #include<string>
 4 using namespace std;
 5 
 6 int main() {
 7     char select;
 8     cin >> select;
 9     getchar();//讀入回車鍵
10     string str;
11 getline(cin, str); 12 if (select == C) { 13 int sum = 0; 14 for (int i = 0; i < str.size(); i++) { 15 if (str[i + 1] == str[i]) sum++; 16 else { 17 if (sum == 0) cout << str[i]; 18 else { 19 cout << sum + 1
<< str[i]; 20 } 21 sum = 0; 22 } 23 } 24 } 25 else { 26 for (int i = 0; i < str.size(); i++) { 27 int sum = 0; 28 while (1) { 29 if (str[i] >= 0&&str[i] <= 9) 30 sum = sum * 10
+ str[i++] - 0;//單個字符的個數可能不是一位數 31 else break; 32 } 33 if (sum == 0) cout << str[i]; 34 for (int j = 0; j < sum; j++) { 35 cout << str[i]; 36 } 37 } 38 } 39 return 0; 40 }

1078 字符串壓縮與解壓