加载中...

[leetcode]第 3 天 字符串(简单)

05. 替换空格

思路

由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。

class Solution {
    public String replaceSpace(String s) {
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if(c == ' ') sb.append("%20");
            else sb.append(c);
        }
        return sb.toString();
    }
}

58 - II. 左旋转字符串

思路

第一反应是subString

class Solution {
    public String reverseLeftWords(String s, int n) {
        return s.substring(n, s.length()) + s.substring(0, n);
    }
}

其他解法:
列表遍历拼接:意思就是说新建一个StringBuilder先向res添加第n+1位至末位的字符,再向res添加首位至第n位的字符,最后将res转化为字符串并返回。

class Solution {
    public String reverseLeftWords(String s, int n) {
        StringBuilder res = new StringBuilder();
        for(int i = n; i < s.length(); i++)
            res.append(s.charAt(i));
        for(int i = 0; i < n; i++)
            res.append(s.charAt(i));
        return res.toString();
    }
}

如果用字符串也可以:

class Solution {
    public String reverseLeftWords(String s, int n) {
        String res = "";
        for(int i = n; i < n + s.length(); i++)
            res += s.charAt(i % s.length());
        return res;
    }
}
posted @ 2022-12-20 16:01  Vincy9501  阅读(12)  评论(0编辑  收藏  举报