学习剑指offer: 第三天

189 阅读1分钟

替换空格

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

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

限制:

0 <= s 的长度 <= 10000

leetcode-cn.com/problems/ti…

class Solution {
    public String replaceSpace(String s) {

        char[] arr = s.toCharArray();
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<arr.length; i++){
            if(arr[i] == ' '){
                sb.append("%20");
            }else {
                sb.append(arr[i]);
            }

        }
        return sb.toString();
    }
}

左旋转字符串

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

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

限制:

  • 1 <= k < s.length <= 10000

leetcode-cn.com/problems/zu…

class Solution {
    public String reverseLeftWords(String s, int n) {
        if(s.length() < n){
            return s;
        }

        StringBuilder sb = new StringBuilder();
        StringBuilder sbe = new StringBuilder();
        for(int i=0; i<s.length(); i++){
            if(i+1 <= n){
                sbe.append(s.charAt(i));
            } else {
                sb.append(s.charAt(i));
            }
        }

        sb.append(sbe);
        return sb.toString();
    }
}