题解 | #表示数字#

表示数字

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 浙江

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务