华为机试HJ96题解 | #表示数字#

表示数字

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

#include <cctype>
#include <iostream>
//#include <string>
#include <bits/stdc++.h>
using namespace std;

// 双指针解法
string AddStartsBeforeAndAfterDigital(const std::string &s)
{
    string res;
    // 遍历字符串
    for (int i = 0; i < s.size(); ) {
        int j = i;
        // 当前字符是数字
        if (isdigit(s[j])) {
            // 找到最后一个数字(连续数字)
            while (isdigit(s[j]) && j < s.size()) {
                j++;
            }
            // 在连续数字前后加上*
            res += "*" + s.substr(i, j - i) + "*";
            // 记录最后一个数字的下一个字符
            i = j;
        } else {
            // 如果当前字符不是数字,则直接加上
            res += s[j];
            i++;
        }
    }

    return res;
}

int main() {
    string s;
    while (cin >> s) { // 注意 while 处理多个 case
        cout << AddStartsBeforeAndAfterDigital(s) << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务