题解 B2123 【字符串 p 型编码】
Level_Down · · 题解
简单的模拟题,简单来说就是从头到尾遍历字符串,同时累加器累加,遍历到不同的字符时将累加器和上一个字符输出,清空累加器,如此循环。
但有两个需要注意的点:
1.遍历不能从
0 号位开始,否则0 号位的上一位是-1 位,有 RE 风险同时这样无论如何0 号位都会输出一次,WA 声一片。2.遍历完之后要再把最后一组数据输出一遍。
没理解的看代码:
#include <bits/stdc++.h>
using namespace std;
string s;
int a = 1;//计数器,因为0号位跳过所以从1开始。
int main()
{
cin >> s;
for (int i = 1; i < s.length(); i++)//不遍历0号位。
{
if (s[i] != s[i - 1])
{
cout << a << s[i - 1];
a = 0;
}
a++;
}
cout << a << s[s.length() - 1]; //最后输出最后一组数据。
return 0;//AC!
}
希望对大家有所帮助。