【剑指offer】替换空格

这篇具有很好参考价值的文章主要介绍了【剑指offer】替换空格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【剑指offer】替换空格,# 剑指offer,java,剑指offer

  • 👑专栏内容:力扣刷题
  • ⛪个人主页:子夜的星的主页
  • 💕座右铭:前路未远,步履不停


一、题目描述

1、题目

剑指offer:替换空格

请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy则经过替换之后的字符串为We%20Are%20Happy。

数据范围: 0 ≤ l e n ( s ) ≤ 1000 0≤len(s)≤1000 0len(s)1000
保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。

2、示例

示例1
输入:“We Are Happy”
返回值:“We%20Are%20Happy”

示例2
输入:" "
返回值:“%20”

二、题目分析

1、replaceAll 方法

在 Java 中,replaceAll 方法是 String 类的一个成员方法,用于替换字符串中满足指定正则表达式的所有子串。它返回一个新的字符串,其内容是通过替换原字符串中匹配给定正则表达式的所有子串得到的。

public class Solution {
    public String replaceSpace (String s) {
        return s.replaceAll(" ","%20");
    }
}

2、StringBuilder

StringBuilder 类是一个可变的字符序列。与 String 类不同,StringBuilder 允许你在不生成新对象的情况下更改字符串内容,Java字符串:构建和操作字符序列的动态工具。

StringBuilder中的append方法:将指定数据添加到序列的末尾。

    public String replaceSpace(String s) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ')
                stringBuilder.append("%20");
            else
                stringBuilder.append(s.charAt(i));
        }
        return stringBuilder.toString();
    }

3、临时数组

新建一个临时数组,逐个遍历字符串中的每个字符,如果不是空格就把遍历的字符添加到临时数组中,如果是空格就添加3个字符'%''2''0'加到临时数组中。文章来源地址https://www.toymoban.com/news/detail-798736.html

    public String replaceSpace(String s) {
        int length = s.length();
        char[] array = new char[length * 3];
        int index = 0;
        for (int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if (c == ' ') {
                array[index++] = '%';
                array[index++] = '2';
                array[index++] = '0';
            } else {
                array[index++] = c;
            }
        }
        String newString = new String(array, 0, index);
        return newString;
    }

到了这里,关于【剑指offer】替换空格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (字符串 ) 剑指 Offer 05. 替换空格 ——【Leetcode每日一题】

    难度:简单 请实现一个函数,把字符串 s 中的每个 空格 替换成 “ %20 ”。 示例 1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 限制 : 0 = s 的长度 = 10000 💡思路:双指针法 如果想把这道题目做到 极致 ,就不要只用额外的辅助空间了! 首先扩充数组到每个空格替换

    2024年02月08日
    浏览(33)
  • 替换空格&&反转字符串中的单词(LeetCode 剑指offer05 && 151)

    题目 剑指 Offer 05. 替换空格  思路 遍历,使用新的字符串来接原字符串,如为空格,则加入%20,否则加入原字符串。  不过看了题解有另一种解法,由于空格转化为%20,设计到原字符存储空间的增加,因此先计算出需要增加的空间后。再使用双指针,从后往前遍历,这里画的

    2024年02月16日
    浏览(31)
  • 【算法第六天7.19】反转字符串,反转字符串||,剑指 Offer 05. 替换空格,反转字符串的单词, 左旋转字符串

    ================================================ 思路 :以中间为分界线,左右两个边界交换字符,依次向里收缩 思路 : 首先:字符串转化为字符数组 char[] res = s.toCharArray(); 最后:将数组再转回字符串 return new String(res); 1、循环以2k为单位, 2、在这个2k长的数组中进行反转,需要有首

    2024年02月16日
    浏览(45)
  • 第8天-代码随想录刷题训练-字符串● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 05.替换空格 ● 151.翻转字符串里的单词 ● 剑指Offer58-II.左旋转字符串

    LeetCode链接 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 swap常见的两种交换形式 常见的值交换 通过位运算 LeetCode链接 给定一个

    2024年02月04日
    浏览(42)
  • Java 动态规划 剑指 Offer 47. 礼物的最大价值

     代码展示:         进行动态规划的五个步骤:         1.状态表示                 dp[i][j]表示从起点到[i][j]这个位置上能获得礼物的最大价值         2.状态转移方程                 我们分析距离[i][j]最近的位置,根据题意我们到达[i][j]位置只能从[i-1][j]向下移动或

    2024年02月13日
    浏览(34)
  • 【leetcode】 剑指 Offer学习计划(java版本含注释)(下)

    该链接的学习计划如下: 剑指 Offer学习计划 上一版本的博文链接如下: 【leetcode】 剑指 Offer学习计划(java版本含注释)(上) 此贴两年前写的,一直在草稿箱里,今天释放出来,后续有时间完善下!(= - =) 题目: 输入一个非负整数数组,把数组里所有数字拼接起来排成

    2024年03月08日
    浏览(35)
  • 【剑指offer刷题记录 java版】数组双指针 之 其它题目

    本系列文章记录labuladong的算法小抄中剑指offer题目 题目链接:https://leetcode.cn/problems/XltzEq/ 题目链接:https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ 题目链接:https://leetcode.cn/problems/he-wei-sde-

    2024年02月11日
    浏览(39)
  • 刷题笔记【5】| 快速刷完67道剑指offer(Java版)

    本文已收录于专栏 🌻 《刷题笔记》 题目来源参考阿秀学长的刷题笔记,小戴只是把 C++的题解改成了 Java版本,并整理了其他思路,便于自己的学习~ 如果解题有更好的方法,本文也会及时进行更新~ 希望对你有帮助~ 一起加油哇~ 牛客原题链接 输入两个递增的链表,单个链表

    2023年04月12日
    浏览(26)
  • 【剑指offer刷题记录 java版】数组双指针 之 滑动窗口

    本系列文章记录labuladong的算法小抄中剑指offer题目 题目链接:https://leetcode.cn/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/ 题目链接:https://leetcode.cn/problems/MPnaiL/ 题目链接:https://leetcode.cn/problems/VabMRr/ 题目链接:https://leetcode.cn/problems/wtcaE1/ 题目链接:https://leetcode.cn/pr

    2024年02月09日
    浏览(43)
  • 【LeetCode】剑指 Offer Ⅱ 第1章:整数(5道题) -- Java Version

    题库链接 :https://leetcode.cn/problem-list/e8X3pBZi/ 题目 解决方案 剑指 Offer II 001. 整数除法 快速除 ⭐ 剑指 Offer II 002. 二进制加法 模拟:StringBuilder ⭐ 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 动规:res[i] = res[i (i-1)] + 1 ⭐ 剑指 Offer II 004. 只出现一次的数字 位运算:按位取模

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包