0
已解决
黄依成
中级天翼
中级天翼
同样,先发题目
题目描述 Description
输入一个字符串(仅包含数字字符以及大小写字母),请你对于字符串中连续的数字求和,用和代替原来的数字输出,对于非数字字符,统计非数字字符连续出现的个数,用其个数代替原来的非数字字符输出。输出的数字之和与非数字字符个数之间用空格隔开。
比如,输入1234abc123
对于连续的数字段1234求和得到1+2+3+4=10;
对于连续的非数字字符段abc,求得其个数为3;
再对于连续的数字段123求和得到1+2+3=6。
所以应该输出10 3 6。
输入描述 Input Description
输入一个字符串(仅包含数字字符以及大小写字母)
输出描述 Output Description
如题
样例输入 Sample Input
1234abc123
样例输出 Sample Output
10 3 6
数据范围及提示 Data Size & Hint
字符串不超过10000个字符
60分WA
#include<iostream>
#include<string>
using namespace std;
int main(){
int sum=0,cnt=0;
string s;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
sum+=s[i]-'0';
if(!(s[i+1]>='0'&&s[i+1]<='9')){
cout<<sum<<" ";sum=0;
}
}else{
cnt++;
if(s[i+1]>='0'&&s[i+1]<='9'){
cout<<cnt<<" ";cnt=0;
}
}
}
return 0;
}
考试已经考完了!!!
0
已采纳
褚俊皓
新手天翼
新手天翼
好简单
把整个字符串前后加上字符'a'
s='a'+s+'a';
遍历字符串s
判断前一位是空格&&这一位是数字
pos=i;
记录首下标;
尾下标同理
求和然后删除
最后输出
累死我了
求采纳!!!
0
0
褚俊皓
新手天翼
新手天翼
好简单
把整个字符串前后加上字符'a'
s='a'+s+'a';
遍历字符串s
判断前一位是空格&&这一位是数字
pos=i;
记录首下标;
尾下标同理
求和然后删除
最后输出
累死我了
求采纳!!!
0