5 条题解

  • 1
    @ 2024-2-10 18:12:48

    这道题稍微有一点点坑

    AC CodeAC~Code

    #include <bits/stdc++.h>
    using namespace std;
    int sum;
    int main()
    {
        ios::sync_with_stdio(false);  // 读入加速
        cin.tie(0);
        cout.tie(0);
        string s, ans = "";  // s如题目中所述,ans是最后的答案
        cin >> s;  // 输入
        char c = s[0];  // 挑一个基准字符,用来判断有几个连续
        for (int i = 0; i <= s.size(); i++)
        /*
        这里之所以要写成i <= s.size();,而不写成i < s.size()
        是因为当判断到最后一个字母时,我的程序只能判断到倒数第二个相同的字符
        最后一个是一直等于的,不管是一个还是两个及以上都不会执行到s[i] != c这一句
        毕竟,循环结束后,最后一个字符后面已经没有字符了,所以它只有相同的
        */
        {
            if (s[i] != c)  // 如果不相同,说明需要加入答案
                (sum == 1) ? ans += c : ans += to_string(sum) + c, sum = 1, c = s[i];
            // 三目运算符,如果只有1个字符,那sum就不用记录,否则,就要现加sum,再加当前字符
            // to_string是用来将数字转换成字符穿,用法:to_string(需要转换的int型变量名)
            else
                sum++;  // 如果是一样的,计数器++
        }
        cout << ans << endl;  // 输出答案
        return 0;  // 好习惯
    }
    
    • 0
      @ 2023-8-13 10:54:25

      AC代码

      #include <bits/stdc++.h>
      using namespace std;
      string s;
      char n;
      int num=1;
      int main()
      {
          cin>>s;
          n=s[0];
          for(int i=1;i<=s.length();i++)
          {
              if(s[i]==n) num++;
              else
              {
                  if(num==1)
                  {
                      cout<<n;
                      n=s[i];
                  }
                  else
                  {
                      cout<<num<<n;
                      num=1;
                      n=s[i];
                  }
              }
          }
          return 0;
      }
      

      • 0
        @ 2023-7-18 9:05:45

        编写成功,f[i]十分重要,它来控制是否输出

        AC代码!!!AC代码!!!

        #include <bits/stdc++.h>
        using namespace std;
        int y;
        int main()
        {
            string s;
            getline(cin,s);
            bool f[s.size()];
            for (int i = 0;i < s.size();i++)
            {
                f[i] = true;
            }
            for (int i = 0;i < s.size();i++)
            {
                if (f[i])
                {
                    y = 1;
                    for (int j = i + 1;j < s.size();j++)
                    {
                        if (s[j] == s[i])
                        {
                            y++;
                            f[j] = false;
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (y > 1) cout << y;
                    cout << s[i];
                }
            }
        }
        
        • 0
          @ 2023-7-8 8:54:57

          #include <iostream> #include <string> using namespace std; int main() { string a; getline(cin, a); int num = 1;//当一个字母出现时它至少会出现一次 for (int i = 0; i < a.size(); i++) { if (a[i] == a[i + 1]) { num++; } if (a[i] != a[i + 1])//当前后不相等时证明相同字母已经结束,开始结算 { if (num != 1)//如果不分成num==1和num!=1的情况下,aabbbx会变成2a3b1x,而这个1是我们不想要的 { cout << num; cout << a[i]; num = 1; } else { cout << a[i]; } } } return 0; }

          • -3
            @ 2023-2-6 15:32:09

            写题解请注意

            鼓励大家写题解,但注意题解格式。

            题解一定要有思路解析或代码注释,能否让别人理解你的思路

            也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

            给代码两端加上这个会舒服一些

            ```cpp

            你的代码

            ```

            </span>

            这个点在键盘的左上角tab上面那个键,注意切换输入法

            #include<iostream>
            using namespace std;
            int main()
            {
                int n;
                cin>>n;//这是一个注释
                return 0;
            }
            

            请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

            抄袭题解一经发现直接取消成绩。

            题解被删除的可能

            1. 代码不符合格式规范
            2. 没有思路讲解或者没有注释,
            3. 无意义的题解

            大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

            • 1

            信息

            ID
            103
            时间
            1000ms
            内存
            32MiB
            难度
            1
            标签
            递交数
            92
            已通过
            64
            上传者