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

浙公网安备 33010602011771号