算法练习-替换数字(思路+流程图+代码)

难度参考

        难度:简单

        分类:字符串

        难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。

题目

        给定一个字符串S,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number.
        示例1:
        输入:s="a5b"
        输出:"anumberb"
        解释:将数字5替换成number

思路

        当解决这个问题时,我们的目标是遍历输入字符串,将其中的数字字符替换为"number"。下面是一个简单的思路:

  1. 创建一个空字符串,用于存储替换后的结果。
  2. 遍历输入字符串的每个字符。
  3. 对于每个字符,检查是否是数字字符。
  4. 如果是数字字符,则将"number"添加到结果字符串;否则,将字符本身添加到结果字符串。
  5. 返回最终的结果字符串。

        有双指针的做法,但是好像没比要,有直接判断是否为数字的函数。

示例

  1. 输入字符串: "a5b"
  2. 遍历每个字符:
    • 字符 'a' 不是数字,添加到结果字符串中。
    • 字符 '5' 是数字,替换为 "number",添加到结果字符串中。
    • 字符 'b' 不是数字,添加到结果字符串中。
  3. 最终结果: "anumberb"

梳理

        让我们解释一下为什么这样的代码能够实现将字符串中的数字替换为"number"的功能:

  1. 定义函数 replaceDigitsWithNumber

    • replaceDigitsWithNumber 函数被定义为接受一个字符串参数 s,返回一个字符串。
    • 在函数内部,初始化一个空字符串 result 用于存储替换后的结果。
  2. 遍历输入字符串的每个字符

    • 使用 for 循环遍历输入字符串 s 中的每个字符。
  3. 检查字符是否是数字

    • 使用 isdigit 函数检查当前字符是否是数字。
    • 如果是数字,将 "number" 添加到结果字符串 result 中。
    • 如果不是数字,将当前字符直接添加到结果字符串 result 中。
  4. 返回结果字符串

    • 函数最终返回存储替换后结果的字符串 result
  5. 主函数中的调用

    • main 函数中,定义了一个示例输入字符串 input,并调用了 replaceDigitsWithNumber 函数,将结果存储在 output 中。
  6. 打印输入和输出字符串

    • 使用 cout 打印输入字符串和替换后的输出字符串。
  7. 返回程序执行成功

    • main 函数返回 0,表示程序成功执行。

        总体来说,这个代码的核心是利用循环遍历输入字符串,对每个字符进行判断,如果是数字则替换为"number",最终返回替换后的字符串。这是通过字符串的拼接和条件判断来实现的。

代码

#include <iostream>
#include <string>// 定义函数,将字符串中的数字替换为"number"
string replaceDigitsWithNumber(const string& s) {// 存储替换后的结果字符串string result;// 遍历输入字符串的每个字符for (char c : s) {// 如果当前字符是数字,则将"number"添加到结果字符串if (isdigit(c)) {result += "number";} else {// 否则,将当前字符添加到结果字符串result += c;}}// 返回替换后的结果字符串return result;
}// 主函数
int main() {// 示例输入字符串string input = "a5b";// 调用替换函数,得到输出字符串string output = replaceDigitsWithNumber(input);// 打印输入和输出字符串cout << "输入: " << input << endl;cout << "输出: " << output << endl;// 返回程序执行成功return 0;
}

        时间复杂度O(n)。

        空间复杂度O(n)。

打卡

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/419471.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php基础学习之代码框架

一&#xff0c;标记 脚本标记&#xff08;已弃用&#xff09;&#xff1a;<script language"php"> php代码 </script> 标准标记&#xff1a;<?php php代码 ?> 二&#xff0c;基础输出语句 不是函数&#xff0c;…

计算机网络基础概念解释

​ 1. 什么是网络 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同⼯作来完成业务&#xff0c;于是有了网络互连。 网络互连&#xff1a;将多台计算机连接在⼀起&#xff0c;完成数据共享。 数据共享本质是…

【网站项目】基于jsp的199旅游景点管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

gin渲染篇

1. 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf package mainimport ("github.com/gin-gonic/gin""github.com/gin-gonic/gin/testdata/protoexample" )// 多种响应方式 func main() {// 1.创建路由// 默认使用了2个中…

django邮件通知功能-

需求&#xff1a; 1&#xff1a;下单人员下订单时需要向组长和投流手发送邮件通知 2&#xff1a;为何使用邮件通知功能&#xff1f;因为没钱去开通短信通知功能 设计 1&#xff1a;给用户信息表添加2个字段 第一个字段为&#xff1a;是否开通邮件通知的布尔值 第二个字段为: 用…

k3s x GitLab Runner Operator,GitLab CI 云原生构建新体验

GitLab CI 是非常常用的一款 CI/CD 工具&#xff0c;只需要在 .gitlab-ci.yml 文件中用 YAML 语法编写 CI/CD 流水线即可。而 GitLab CI 能够运行的关键组件是 GitLab Runner。GitLab Runner 是一个轻量级、高扩展的代理&#xff0c;主要用来执行 GitLab CI/CD 流水线中的 Job&…

旅游项目day10

1. 内容评论 1.1 评论表结构设计 id&#xff0c;content&#xff0c;user_id&#xff0c;article_id&#xff0c;ref_comment_id&#xff0c;create_time&#xff0c;likes&#xff0c;state 存储到MySQL行否&#xff1f; 存储到MongoDB行否&#xff1f; 使用MongoDB来实现。…

四个简单的bat脚本

Windows11 最大劝退点就是这个右键菜单&#xff0c;复制粘贴都变成一点点的小图标&#xff0c;最气人的是点击底部的显示更多选项才能展示全部功能。让许多本来点一次就能完成的操作变成两次。其实使用一个小命令就能修改回win10版本的菜单。四个简单的bat脚本&#xff0c;能完…

【机组】存储器、总线及堆栈寄存器实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ ​ ​​​​​​​​ 目录 &…

人工智能原理实验2(2)——罗马尼亚问题(贪婪搜索、A*搜索、BFS、DFS)

&#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1; 根据上图以Zerind为初始状态&#xff0c;Bucharest为目标状态实现搜索&#xff0c;分别以贪婪搜索&#xff08;只考虑直线距离&#xff09;和A算法求解最短路径。 按顺序列出贪婪算法探索的扩展节点和其估价函数…

(超详细)9-YOLOV5改进-添加EffectiveSEModule注意力机制

1、在yolov5/models下面新建一个EffectiveSEModule.py文件&#xff0c;在里面放入下面的代码 代码如下&#xff1a; import torch from torch import nn as nn from timm.models.layers.create_act import create_act_layerclass EffectiveSEModule(nn.Module):def __init__…

动态规划—— 求最长不下降序列LIS【集训笔记】

题目描述 设有由n(1≤n≤200)个整数组成的数列&#xff0c;记为:b(1)、b(2)、……、b(n)&#xff0c;若存在i1<i2<i3<…<ie 且有b(i1)<b(i2)<…<b(ie)则称为长度为e的不下降序列。程序要求&#xff0c;当原数列出之后&#xff0c;求出最长的不下降序列。 …