AcWing之找替换空格

题目

请实现一个函数,把字符串中的每个空格替换成"%20"。
你可以假定输入字符串的长度最大是1000。
注意输出字符串的长度可能大于1000。

样例

输入:"We are happy."输出:"We%20are%20happy."

方法一:

// 时间复杂度是 O(n)。class Solution {
public:string replaceSpaces(string &str) {string res;                            //必须新定义一个res,不能在原来的str上修改for (auto x: str)if(x == ' ') res+="%20";else res+=x;return res;}
};

方法二:

class Solution {
public:string replaceSpaces(string &str) {int len = 0;for (auto c : str)if (c == ' ')len += 3;elselen ++ ;      //计算长度int i = str.size() - 1, j = len - 1;    //修改指针的位置str.resize(len);                              //重定义str长度while (i >= 0){if (str[i] == ' ')           //从后往前,当str[i] == '  ',则添加{str[j -- ] = '0';str[j -- ] = '2';str[j -- ] = '%';}else str[j -- ] = str[i];  //否则,简单的赋值。   str[j--] = str[i]  . 把str原来的值赋值给扩建的str后面的i -- ;}return str;}
};

作者:yxc
链接:https://www.acwing.com/solution/AcWing/content/704/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

心得

方法一: 必须新定义一个res,不能再原来的str上修改。
invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
str最终是const,长度是有限的,不能添加"%20"长度为3.
见方法二

方法二: 关键在于str进行了重新定义长度。

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

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

相关文章

VC++中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangye's Space

原始链接:VC中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangyes Space 我们在用VC编写Windows程序的时候可能会发现一般可执行体(.EXE)的文件体积都比较大,于是非常羡慕那些使用Win32汇编编写程 序的人&#xff0…

LeetCode 345. 反转字符串中的元音字母

1. 题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle"示例 2: 输入: "leetcode" 输出: "leotcede"说明: 元音字母不包含字母"y"。来源&#xf…

python list存储对象_《python解释器源码剖析》第4章--python中的list对象

4.0 序python中的list对象,底层对应的则是PyListObject。如果你熟悉C,那么会很容易和C中的list联系起来。但实际上,这个C中的list大相径庭,反而和STL中的vector比较类似4.1 PyListObject对象我们知道python里面的list对象是支持对…

AcWing之从尾到头打印链表

题目 输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。 返回的结果用数组存储。样例 输入:[2, 3, 5] 返回:[5, 3, 2]方法一: /* struct ListNode {int val; //当前结点的值ListNode *next; //指向下一个结点的指针L…

javascript 打开新窗口

一、window.open()支持环境: JavaScript1.0/JScript1.0/Nav2/IE3/Opera3 二、基本语法:window.open(pageURL,name,parameters) 其中:pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三、示例:…

python修改mac地址_python利用_winreg模块制作MAC地址修改工具

通过百度搜索知道,xp下修改MAC地址的方法主要有两个,一种是通过配置本地链接属性来实现,这种方法不适合用程序来完成,另一种是通过修改注册表来完成,本程序主要是利用了这种方法。具体方法:Windows 2000/XP…

我们为什么需要工作流

我们为什么需要工作流 这是我的"基于WF设计业务流程平台"的题外篇 以下是这系列的文章列表,写的很痛苦,但我会继续写下去 基于WF设计业务流程平台-架构 基于WF设计业务流程平台-权限体系 基于WF设计业务流程平台_特定群体与特定人 基于WF设计业务流程平台_参与者与任…

LeetCode 371. 两整数之和(位运算加法)

1. 题目 不使用运算符 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 输入: a 1, b 2 输出: 3示例 2: 输入: a -2, b 3 输出: 1来源:力扣(LeetCode) 链接:https://leetcod…

python函数方法里面用浅复制深复制_图解 Python 浅拷贝与深拷贝

Python 中的赋值语句不会创建对象的拷贝,仅仅只是将名称绑定至一个对象。对于不可变对象,通常没什么差别,但是处理可变对象或可变对象的集合时,你可能需要创建这些对象的 “真实拷贝”,也就是在修改创建的拷贝时不改变…

32位Windows系统未分页内存限制导致的VPS的容量问题

问题 32位Windows系统未分页内存限制导致的VPS的容量问题 解决方案 在32位的Windows系统上,制约VPS的数量的主要参数是“未分页内存” 打开Windows自己的任务管理器,选择性能标签,查看“核心内存”,查看“未分页” 在32位的windo…

AcWing之重建二叉树

题目 输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。 注意:二叉树中每个节点的值都互不相同;输入的前序遍历和中序遍历一定合法;样例 给定: 前序遍历是:[3, 9, 20, 15, 7] 中序遍历是:[9, 3, …

奇异值分解(Singular Value Decomposition,SVD)

文章目录1. 奇异值分解的定义与性质1.1 定义1.2 两种形式1.2.1 紧奇异值分解1.2.2 截断奇异值分解1.3 几何解释1.4 主要性质2. 奇异值分解与矩阵近似2.1 弗罗贝尼乌斯范数2.2 矩阵的最优近似2.3 矩阵的外积展开式3. 奇异值分解Python计算4. SVD应用一种矩阵因子分解方法矩阵的奇…

项目经理有必要学python吗_项目经理到底要不要懂技术

关于这个问题,我想开门见山地说一句,需要,而且非常需要。当然有同学就会说了,项目经理懂技术会被技术所束缚,无法跳出技术角度来看待项目整体。还有同学会说,现在是团队配合时代,各领域专精&…

贝叶斯算法

1. 贝叶斯由来 贝叶斯为了解决“逆概”问题提出的 2. 贝叶斯要解决的问题 正向概率 袋子里装着N个黑球和M个白球,伸手取摸球,摸到黑球和白球的概率有多大 逆向概率 袋子里前提不知道有黑白球的比例,而是闭着眼睛摸球统计后推测黑球和白球的…

LeetCode 374. 猜数字大小(二分查找)

1. 题目 我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果&#…

机器人编程与python语言的区别_一分钟看懂“机器人编程”和“少儿编程”的区别!...

随着编程学习全球化的趋势,国内编程学习热潮日盛,越来越多的家长开始让孩子接触学习编程。然而在挑选学习课程的过程中,机器人编程和少儿编程是最让家长头疼的问题之一。因为两者的名称都有“编程”二字,这就让很多家长产生一个错…

让窗体接受拖放, 并获取拖过来的文件信息 - 回复 海浪问 的问题

问题来源: http://www.cnblogs.com/del/archive/2009/01/20/1353117.html#1435746原理分析:这需要用到 ShellAPI 单元的两个函数: DragAcceptFiles、DragQueryFile;用 DragAcceptFiles(窗口句柄, True); 以让窗口能够接受拖放;然后就等待 WM_DROPFILES 消息, 并用 DragQueryFil…

LeetCode之最大回文串--动态规划

1. 题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1:输入: "babad"输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2:输入: "cbbd"输出: "bb&q…

sort函数_MATLAB--数字图像处理 sort()函数

sort()用处对一维或二维矩阵进行排序用法sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行升序排序(列优先)。sort(A,dim):对矩阵按指定的方向进行升序排序&#xff…

LeetCode 1248. 统计「优美子数组」(要复习)

文章目录1. 题目2. 解题2.1 记录奇数出现的pos2.2 前缀和1. 题目 给你一个整数数组 nums 和一个整数 k。 如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。 请返回这个数组中「优美子数组」的数目。 示例 1: 输入…