字符串

344 反转字符串

//java中没有swap库函数
class Solution {
    public void reverseString(char[] s) {
        for (int i = 0, j = s.length - 1; i < s.length / 2; i++, j--) {
            char tmp = s[i];
            s[i] = s[j];
            s[j] = tmp;
        }
    }
}

541 反转字符串 ll

//使用StringBuffer或StringBuilder进行字符串操作更方便
//或转换为char[]操作
//substring [)
class Solution {
    public String reverseStr(String s, int k) {
        StringBuffer stringBuffer = new StringBuffer(s);
        String string = "";
        for (int i = 0; i < s.length(); i += 2*k) {
            if (i + k <= s.length()) {
                string += new StringBuffer(stringBuffer.substring(i, i + k)).reverse().toString();
                string += s.substring(i+k,Math.min(i+2*k,s.length()));
                continue;
            }
            string += new StringBuffer(stringBuffer.substring(i)).reverse().toString();
        }
        return string;
    }
}

剑指offer 05 替换空格

//转换为char[]操作更方便
class Solution {
    public String replaceSpace(String s) {
        int count = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ') {
                count++;
            }
        }
        char[] chars = s.toCharArray();
        char[] res = new char[s.length() + count * 2];
        for (int i = chars.length - 1, j = res.length - 1; i >= 0; i--, j--) {
            if (chars[i] != ' ') {
                res[j] = chars[i];
            } else {
                res[j] = '0';
                res[j - 1] = '2';
                res[j - 2] = '%';
                j -= 2;
            }
        }
        return new String(res);
    }
}

151 翻转字符串里的单词

class Solution {
    public String reverseWords(String s) {
        String[] s1 = s.trim().split(" +");
        String res = "";
        if (s.isEmpty()) {
            return res;
        }
        for (int i = s1.length - 1; i > 0; i--) {
            res += s1[i] + " ";
        }
        res += s1[0];
        return res;
    }
}

剑指offer58 ll 左旋转字符串

class Solution {
    public static String reverseLeftWords(String s, int n) {
        StringBuffer s1 = new StringBuffer(s.substring(n, s.length())).reverse();
        StringBuffer s2 = new StringBuffer(s.substring(0, n)).reverse().append(s1);
        return s2.reverse().toString();
    }
}
posted @ 2021-01-14 17:49  叁柒零壹  阅读(51)  评论(0)    收藏  举报