day33【题目】替换数字

day33【算法题】替换数字

1.题目描述

题目链接:替换数字

  1. 替换数字(第八期模拟笔试)

时间限制:1.000S 空间限制:128MB

题目描述

给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。

输入描述

输入一个字符串 s,s 仅包含小写字母和数字字符。

输出描述

打印一个新的字符串,其中每个数字字符都被替换为了number

输入示例
a1b2c3
输出示例
anumberbnumbercnumber
提示信息

数据范围:
1 <= s.length < 10000。

2.题解

2.1c++暴力
#include <iostream>
#include <string>
using namespace std;

int main(){
    string s;
    cin>>s;
    int length=s.size();
    for(int i=0;i<length;i++){
        if(s[i]<'a'){
            s.replace(i, 1, "number");
            i+=5;
            length = s.size();
        }
            
    }
    cout<<s;
}
2.2C++双指针
#include <iostream>
#include <string>
using namespace std;

int main(){
    string str;
    cin>>str;
    
    int old_index=str.size()-1;
    int count=0;
    for(int i=0;i<str.size();i++){
        if(str[i]>='0' && str[i]<='9'){
            count++;
        }
    }
    str.resize(str.size()+count*5);
    int new_index=str.size()-1;
    while(old_index>=0){
        if(str[old_index] >= '0' && str[old_index]<='9'){
            str[new_index--]='r';
            str[new_index--]='e';
            str[new_index--]='b';
            str[new_index--]='m';
            str[new_index--]='u';
            str[new_index--]='n';
        }
        else{
            str[new_index]=str[old_index];
            new_index--;
        }
        old_index--;
    }
    cout<<str<<endl;

} 

代码执行过程解释:
  1. 输入处理:
    • cin >> str; 从标准输入读取一个字符串,并存储在变量 str 中。
  2. 计数数字字符:
    • 使用 for 循环遍历字符串 str,如果字符是数字(即 str[i] >= '0' && str[i] <= '9'),则递增 count 计数器。
  3. 扩展字符串长度:
    • str.resize(str.size() + count * 5); 根据 count 计算需要扩展的长度,并预留足够的空间,每个数字字符都会被替换为字符串 “number”,长度增加 5。
  4. 替换操作:
    • 使用 while 循环从字符串末尾开始向前处理。
    • 如果当前字符是数字字符,则依次向前填充 “number”。
    • 如果不是数字字符,则直接复制到新位置。
  5. 输出结果:
    • cout << str << endl; 输出最终处理后的字符串。
示例运行:

假设输入为 "abc123xyz456def",则输出为 "abcrebmunumberxyzrebmunumberdef"

2.3Python

s=input()
ans=""
for i in s:
    if ord("0")<=ord(i)<=ord("9"):
        ans+="number"
    else:
        ans+=i
    
print(ans)

也是很暴力了。。


ok了,就到这里叭~~~

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

拥有一颗感恩的心,珍惜身边的人和事,让生活更加美好。。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值