1078 字符串壓縮與解壓
阿新 • • 發佈:2018-09-06
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 字符串壓縮與解壓