2 条题解

  • 2
    @ 2023-8-13 20:09:21
    #include <bits/stdc++.h>
    using namespace std;
    int n;
    string s;
    int main()
    {
        cin>>s;
        for(int i=0;i<s.length();i++)
        {        if(s[i]>='0'&&s[i]<='9') n=n*10+int(s[i]-'0');
            else if(s[i]>='a'&&s[i]<='z')
            {
                if(n==0) cout<<s[i];
                for(int j=0;j<n;j++) cout<<s[i];
                n=0;
            }
        }
        return 0;
    }
    
    • 2
      @ 2023-7-8 8:57:32
      #include <iostream>
      #include <string>
      using namespace std;
      int main()
      {
      	string a;
      	getline(cin, a);
      	int num = 0;//本题思路核心
      	int i;
      	for (i = 0; i < a.size(); i++)
      	{
      		if (a[i] >= 48 && a[i] <= 57)//判断是否为数字
      		{
      			//这题不能像上一题一样设初始值为1,因为字母前面的数字并不确定,比如说,如果是35a的话
      			//那么先读3,然后再读数字的话,前面的三就要进位,也就是这里用到的*10,如果一直是数字
      			//的话要一直进位知道下一个出现字母为止
      			num = num * 10 + (a[i] - 48);
      		}
      		if ((a[i] >= 65 && a[i] <= 90) || (a[i] >= 97 && a[i] <= 122))//遇到英文,开始结算
      		{
      			if (num == 0)//讨论的方式和上一道题一样
      			{
      				cout << a[i];
      			}
      			else
      			{
      				for (int j = 1; j <= num; j++)
      				{
      					cout << a[i];
      				}
      				num = 0;
      			}
      		}
      	}
      	return 0;
      }
      
      • 1

      信息

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