首页 > 其他分享 >Leetcode 剑指Offer 05. 替换空格(Ti huan kong ge lcof)

Leetcode 剑指Offer 05. 替换空格(Ti huan kong ge lcof)

时间:2023-08-29 09:33:58浏览次数:47  
标签:Offer ++ chars 05 lcof current int length size

题目链接

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:

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

提示:

  • 0 <= s 的长度 <= 10000

思路

直接提交return s.replace(" ", "%20"), 常用方法信手拈来可不是每个人都能做到的(笑

我的思路是首先定义一个length, 然后遍历字符串s的每个字符, 遇见空格时length+3. 之后定义一个length长度的char数组, 将字符串s中的每个字符填入数组, 若遇见空格则填充%20

Leetcode官方解法是直接定义一个s.length * 3长度的字符串, 之后将每个字符填入并使用size记录填入的个数. 在返回时返回的是new String(chars, 0, size). 代码简洁美观, 比我的好多了qwq

代码实现

我的思路:

class Solution {
    public String replaceSpace(String s) {
        if (s.length() == 0 || s == null) {
            return s;
        }

        int length = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ') {
                length +=2;
            }
            length++;
        }

        char[] chars = new char[length];

        int former = s.length() - 1;
        int current = length - 1;

        while(current >= 0) {
            if (s.charAt(former) == ' ') {
                chars[current--] = '0';
                chars[current--] = '2';
                chars[current] = '%';
            } else {
                chars[current] = s.charAt(former);
            }
            current--;
            former--;
        }
        
        return new String(chars);
    }
}

Leetcode解法:

class Solution {
    public String replaceSpace(String s) {
        int length = s.length();
        char[] chars = new char[length * 3];
        int size = 0;
        for(int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if(c == ' ') {
                chars[size++] = '%';
                chars[size++] = '2';
                chars[size++] = '0';
            } else {
                chars[size++] = c;
            }
        } 

        return new String(chars, 0, size);
    }
}

标签:Offer,++,chars,05,lcof,current,int,length,size
From: https://www.cnblogs.com/ahci316/p/17663909.html

相关文章

  • 剑指 Offer 19. 正则表达式匹配(困难)
    题目:classSolution{public:boolisMatch(strings,stringp){intm=s.size()+1,n=p.size()+1;vector<vector<bool>>dp(m,vector<bool>(n,false));//设动态规划矩阵dp,dp[i][j]代表字符串s的前i个字dp[0][0]=......
  • 剑指 Offer 10- II. 青蛙跳台阶问题(简单)
    题目:classSolution{public:intnumWays(intn){vector<int>dp(n+1,1);for(inti=2;i<=n;i++){dp[i]=(dp[i-1]+dp[i-2])%1000000007;}returndp[n];}};......
  • 剑指Offer 33. 二叉搜索树的后序遍历序列
    题目链接:剑指Offer33.二叉搜索树的后序遍历序列题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。解法思路:既然是二叉搜索树,那就一定满足以下性质:左子树<根<右子树;......
  • 05 Ajax请求(扩展,延伸)
    05Ajax请求(扩展,延伸)首先,我们用Flask创建一个后台服务器(自己做网站了哈)目录结构:服务端:fromflaskimportFlask,render_template,request#pipinstallFlaskapp=Flask(__name__)@app.route("/")defindex():#跳转到首页print("你曾经来过服务器"......
  • 05 文件之IO
    标准IO介绍IO的概念I——input,指输入设备,比如键盘鼠标都是Input设备。O——output,指输出设备,比如显示器。优盘,网口,既是输入也是输出。文件类型文件指一组相关数据的有序集合。文件类型:常规文件r目录文件d字符设备文件c块设备文件b管道文件......
  • 龙芯LoongArch架构2K0500开发板应用于车辆管理和控制系统解决方案
         迅为iTOP-LS2K0500开发采用龙芯LS2K0500处理器,基于龙芯自主指令系统(LoongArch®)架构,片内集成64位LA264处理器核、32位DDR3控制器、2DGPU、DVO显示接口、两路PCIe2.0、两路SATA2.0、四路USB2.0、一路USB3.0、两路GMAC、PCI总线、彩色黑白打印接口、HDA及其他常用接口。......
  • WebService开发笔记 2 -- VS 2005 访问WebServcie更简单
    在上一回中我们创建了一个WebService服务(WebService开发笔记1--利用cxf开发WebService竟然如此简单),下面就来作一个跨平台访问WebServcie服务的例子....下面将在vs2005中通过c#.net访问我们创建好的WebService服务,C#.net第一次用,TNN的没想到这么简单,MS就是MS,不服不行。1.......
  • 05 地址解析协议ARP
    地址解析协议(ARP)ARP(AddressResolutionProtocol)地址解析协议:根据已知的IP地址解析获得其对应的MAC地址ARP工作流程1.HOST1ARP缓存HOST1通信之前需要封装数据包,其中在封装二层数据链路层时,终端查询自己的ARP缓存表,ARP缓存表维护一个IP和MAC地址的对应关系,根据对端IP地......
  • 20230512 java.lang.Throwable
    介绍java.lang.ThrowablepublicclassThrowableimplementsSerializableError和Exception的父类,只有该类型才可以被throw和catch不是RuntimeException或Error子类的都被认为是检查异常(checkedexception),包括Throwable构造函数共有5个构造函数,继承时可以选择性......
  • 20230516 java.lang.StringBuilder
    介绍java.lang.StringBuilderpublicfinalclassStringBuilderextendsAbstractStringBuilderimplementsjava.io.Serializable,Comparable<StringBuilder>,CharSequence此类提供与StringBuffer兼容的API,但不保证线程安全append方法总是在构建器的末尾添加这些字符;......