牛客练习赛67 A 牛牛爱字符串

牛牛爱字符串

https://ac.nowcoder.com/acm/contest/6885/A

牛客练习赛67 A 牛牛爱字符串

题目链接:https://ac.nowcoder.com/acm/contest/6885/A

从字符串中提取数字,并去除先导0,需要注意这里不能用while(cin>>str),因为会跳过输入字符串中的空格。

单独被分隔一个0,也需要输出,连续多个0的组合则输出最后一个0。

#include<iostream>
#include<cstring>
using namespace std;
int main(){
    string str;
    int flag;
    while(getline(cin,str)){
        flag = 0;
        for(size_t i = 0; i < str.size(); i++){
            // 为数字
            if(str[i] >= '0' && str[i] <= '9'){
                // 为0,且不为最后一位,前面也没有非0数字
                if(str[i] == '0' && flag !=2 && i != str.size() - 1 ){
                    // 先导0
                    flag = 1;
                }else{
                    // 数字
                    flag = 2;
                    cout<<str[i];
                }
            }else{
                // 全0
                if(flag == 1)cout<<0;
                // 数字后的第一个字符,输出空格
                if(flag != 0)cout<<" ";
                // 恢复状态
                flag = 0;
            }
        }
        // 换行
        cout<<endl;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 11:22
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务