1 条题解

  • 0
    @ 2025-8-24 21:07:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Level_Down
    已退役

    搬运于2025-08-24 21:07:28,当前版本为作者最后更新于2021-07-03 18:01:52,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    简单的模拟题,简单来说就是从头到尾遍历字符串,同时累加器累加,遍历到不同的字符时将累加器和上一个字符输出,清空累加器,如此循环。

    但有两个需要注意的点:

    1.遍历不能00 号位开始,否则 00 号位的上一位是 1-1 位,有 RE 风险同时这样无论如何 00 号位都会输出一次,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! 
    }
    

    希望对大家有所帮助。

    • 1

    信息

    ID
    6980
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者