首页 > 其他分享 >剑指Offer面试题5:替换空格

剑指Offer面试题5:替换空格

时间:2023-09-17 23:03:00浏览次数:35  
标签:index 面试题 String Offer ++ 空格 length array

一、题目

请实现一个函数,把字符串中的每个空格替换成“%20”。例如:输入“We are happy.",则输出”We%20are%20happy."。

二、解析

2.1 解法一

申请一个临时数组,然后再遍历这个字符串的每个字符,如果不是空格就把遍历的字符添加到临时数组中,如果是空格就添加3个符'%','2','0'分别到临时数组中,最后再把临时数组转化为字符串即可。

    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 newStr = new String(array, 0, index);
        return newStr;
    }

2.2 解法二

把字符串中的每个字符一个个添加到StringBuilder中,如果遇到空格就把他换成%20。

    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();
    }

标签:index,面试题,String,Offer,++,空格,length,array
From: https://blog.51cto.com/u_16244372/7504149

相关文章

  • [剑指offer] 队列&栈篇
    JZ9 用两个栈实现队列1/*模拟入队*/2publicclassJZ9_13{4publicstaticStack<Integer>stack1=newStack<Integer>();5publicstaticStack<Integer>stack2=newStack<Integer>();67publicstaticvoidpush(intnod......
  • 2023 JavaScript想进 BAT 的必须要面对的面试题
    2023JavaScript面试题以及答案在本文中,您将学习面试中最常见的JavaScript面试问题和答案。在继续学习JavaScript面试问题和答案之前,我们首先学习完整的JavaScript教程。JavaScript(JS)是使用最广泛的轻量级脚本和编译编程语言,具有一流的功能,由BrendenEich于1995年开发。众所周......
  • 2023最全面试知识库,1000+常见android面试题,助你备战金九银十
    前言亲爱的面试者朋友们,新一轮金九银十又来了,相信很多人正准备应对新的工作机会和面试挑战。无论你是应届生还是有工作经验的朋友,在面试这个环节都将是你证明自己和获得机会的重要关口。面试是一个复杂的过程,既考察你的专业能力,也考察你的个人素质和应变能力。如何准备面试,掌握面试......
  • vue中elementui el-input绑定的值如何过滤掉输入的空格?
    在vue中可以在@input事件中使用Trim函数来去掉前后两端空格,再使用replace方法来删除中间空格,此时的值删除所有空格,用户输入值中的空格就会被过滤掉了。<template> <div> <el-inputv-model="searchValue"@input="handleInput"></el-input></div></template><scrip......
  • [剑指offer] 回溯篇
    JZ12矩阵中的路径1/*DFS*/2publicclassJZ12_13{4publicstaticboolean[][]vis;5publicstaticint[]dx=newint[]{-1,1,0,0};6publicstaticint[]dy=newint[]{0,0,-1,1};78publicstaticbooleanhasPath(char[][]......
  • JVM--2021面试题系列教程(附答案解析)
    JVM--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本前言序言再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点。适合阅读人群Java学习者和爱好者,有一定工作经验的技术人,准面试官等。阅读建议本教程是系列教程,包含Java基础,JVM,容......
  • Java面试题和一些经典问题
    Java面试题和一些经典问题整数扩展类浮点数扩展System.out.println(i);System.out.println(i2);System.out.println(i3);System.out.println("===================================");//==================================================//浮点数扩展?银行业务怎么......
  • [剑指offer] 模拟篇
    JZ29 顺时针打印矩阵1/*模拟*/2publicclassJZ29_13{4publicstaticArrayList<Integer>printMatrix(int[][]matrix)5{6ArrayList<Integer>res=newArrayList<>();7intleft=0,right=matrix[0].length-......
  • MySQL面试题全解析:准备面试所需的关键知识点和实战经验
    MySQL有哪几种数据存储引擎?有什么区别?MySQL支持多种数据存储引擎,其中最常见的是MyISAM和InnoDB引擎。可以通过使用"showengines"命令查看MySQL支持的存储引擎。存储方式:MyISAM引擎将数据和索引分别存储在两个不同的文件中,一个是.MYD文件用于存储数据,一个是.MYI文件用于存储索引......
  • css-面试题
    1-css中隐藏元素的方法有哪些?display:none;不显示对应的元素,文档布局中不占控件visibility:hidden;隐藏元素,但仍占空间2-display的值有哪些?分别是什么作用?inline默认,将元素设为行内元素block将元素设为块元素inline-block将元素设为行内块元素none隐......