20240308-Day 26-点亮代码技能

卡码网54(代码随想录:替换数字)

C++:

注意:

这道题的关键是填充number的方法,如果从前向后填充,那么每次都需要将字符串后面的元素整体向后移动(时间复杂度O(n^2)),而如果从前向后填充则不需要。

cpp 复制代码
//卡码网54题:替换数字
#include <iostream>
#include <string>

using namespace std;

int main(void)
{
    string s;
    int count = 0;
    while(cin >> s)
    {
        int oldsize = s.size();
        for(int i=0; i < s.size(); i++)
        {
            if(s[i] >= '0' && s[i] <= '9')
                count++;
        }
        //扩充字符串大小
        s.resize(oldsize + 5*count);
        //从后向前填充数组
        int j = s.size() - 1;
        for(int i = oldsize-1; i >= 0; i--)
        {
            if(s[i] >= '0' && s[i] <= '9')
            {
                s[j] = 'r';
                s[j-1] = 'e';
                s[j-2] = 'b';
                s[j-3] = 'm';
                s[j-4] = 'u';
                s[j-5] = 'n';
                j -= 6;
            }
            else
            {
                s[j] = s[i];
                j--;
            }
        }
        cout << s << endl;
        cout << s.size() << endl;
    }
}

Python:

python 复制代码
class Solution:
    def replace_number(self, s:str)->str:
        res = list(s)
        for i in range(len(s)):
            if res[i] in ['1','2','3','4','5','6','7','8','9']:
                res[i] = 'number'
        return ''.join(res)

sol = Solution()
s = input()
result = sol.replace_number(s)
print(result)
相关推荐
MuMuMu122329 分钟前
智慧监测的“火眼金睛”:当AIoT重构环保监管体系
笔记
一只小菜鸡..2 小时前
南京大学 操作系统 (JYY) 学习笔记:进程地址空间与内存“外挂”魔法
笔记·学习
一只小菜鸡..3 小时前
南京大学 操作系统 (JYY) 学习笔记:访问操作系统的对象与“一切皆文件”
笔记·学习
摇滚侠8 小时前
《RocketMQ 官网》阅读笔记 RocketMQ 消息队列 MessageQueue 消息 Messagege
笔记·rocketmq
Ztt6666666669 小时前
【无标题】
经验分享·笔记·其他·百度·微信公众平台
依然范特东9 小时前
强化学习笔记4--TD算法
笔记
AOwhisky10 小时前
Linux(CentOS)系统管理入门笔记(第十五期)——文件系统与存储管理(上篇):设备识别、挂载与文件查找
linux·运维·笔记·centos·文件系统
晓梦林10 小时前
[极客大挑战 2019]PHP学习笔记
笔记·学习·php
YUS云生10 小时前
Python学习笔记·第39天:提示词工程——更好提问的五大技巧与JSON数据格式
笔记·python·学习
茯苓gao11 小时前
嵌入式开发笔记:QSerialPort 完整使用指南——从基础 API 到工程实战
笔记·嵌入式硬件·qt·学习