Day3 剑指offer 字符串

剑指 Offer 05. 替换空格

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

示例 1:

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

遍历字符串,找到空格替换

字符串不能直接修改

遍历字符串:

//str.charAt(i)  是获取字符串中i+1位置的字符

for(int i=0;i < str.length();i++) {

     System.out.println(str.charAt(i)); 
}

//str.substring(i,i+1) 截取父字符串的某一部分 左闭右开 从0开始

for(int i=0;i < str.length();i++) {

     System.out.println(str.substring(i,i+1)); 
     
}

//toCharArray() 方法将字符串转换为字符数组。

char[] c = str.toCharArray();

for(int i=0;i < c.length;i++) {

    System.out.println(c[i]);
}

添加:


Stringbuffer是动态字符串数组,append( )是往动态字符串数组添加,跟“xxxx”+“yyyy”相当‘+’号

class Solution {
    public String replaceSpace(String s) {

    //字符数组
      char[] c = s.toCharArray();
      StringBuffer ss=new StringBuffer();

        for(int i=0;i < c.length;i++) {
            if(c[i] == ' '){
                ss.append("%20");
            } else
             ss.append(c[i]);
        }    
        return ss.toString();  
        }
}

执行结果:

通过

显示详情

添加备注

执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户

内存消耗:39.6 MB, 在所有 Java 提交中击败了12.97%的用户

通过测试用例:27 / 27

剑指 Offer 58 - II. 左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

示例 1:

输入: s = "abcdefg", k = 2
输出: "cdefgab"
示例 2:

输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"

class Solution {
    public String reverseLeftWords(String s, int n) {
      char[] c = s.toCharArray();
      StringBuffer s1=new StringBuffer();
      StringBuffer s2=new StringBuffer();
        for(int i=0;i<s.length();i++){
            if(i<n){
                s1.append(c[i]);
            }else{
                s2.append(c[i]);
            }
        }
        return s2.append(s1).toString();
    }
}

执行结果:

通过

显示详情

添加备注

执行用时:5 ms, 在所有 Java 提交中击败了25.75%的用户

内存消耗:41.3 MB, 在所有 Java 提交中击败了43.47%的用户

通过测试用例:34 / 34

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值