华为机试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-28 16:00
已编辑
武汉理工大学 Java
想干测开的tomca...:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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