PAT (Basic Level) 1078 字符串压缩与解压

题意

字符串压缩与解压缩。

思路

模拟即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	char c;
	cin >> c;
	cin.ignore(1);
	string s;
	getline(cin, s);
	if (c == 'C') {
		for (int i = 0, j = 0; i < s.size(); i = j) {
			while (j < s.size() && s[j] == s[i]) j++;
			if (j - i == 1)
				cout << s[i];
			else 
				cout << j - i << s[i];
		}
	}
	else {
		for (int i = 0; i < s.size(); ++i) {
			if (!isdigit(s[i])) {
				cout << s[i];
				continue;
			}
			int num = 0, j = i;
			while (isdigit(s[j])) 
				num = num * 10 + s[j++] - '0';
			for (int k = 0; k < num; ++k) 
				cout << s[j];
			i = j;
		}
	}
	return 0;
} 

HINT

不定时更新更多题解,Basic Level 全部AC代码,详见 link ! ! !

发布了92 篇原创文章 · 获赞 16 · 访问量 3761

猜你喜欢

转载自blog.csdn.net/abcdefbrhdb/article/details/104641511
今日推荐