题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

一次遍历,用索引标记 “数字子串” 的开始位置和结束位置,并配合使用substr()方法即可。
int main() {
    string s;
    unsigned int n;
    string res;
    while(getline(cin,s)){
        n = s.size();
        for(int i=0; i<n;){
            if(isdigit(s[i])){    //每次遇到的第一个数字,并记录当前 数字子串的长度
                res += '*';
                int start = i;
                while(i<n && isdigit(s[i])) ++i;    //让 i 后移,指向第一个 非数字的位置
                res += s.substr(start,i-start) + '*';
            }
            else res += s[i++];
        }
        cout<<res<<endl;
    }
    return 0;
}


全部评论
同学同花顺尝试一下吗,面试简单不造火箭,我帖子有内推
点赞 回复 分享
发布于 2022-09-14 01:28 浙江

相关推荐

M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务