2 条题解
-
2
#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
#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
- 标签
- 递交数
- 81
- 已通过
- 57
- 上传者