问题标题: 酷町堂:震惊!一安徽小伙,竟又在某网站上问考试题!

0
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
我要回答