- 344.反转字符串
class Solution {
public void reverseString(char[] s) {
int begin = 0;
int end = s.length - 1;
while (begin < end) {
char tmp = s[begin];
s[begin] = s[end];
s[end] = tmp;
begin++;
end--;
}
}
}
- 541. 反转字符串II
class Solution {
public String reverseStr(String s, int k) {
//kn ~ (k + 1)n - 1
StringBuilder sb = new StringBuilder();
int begin = 0;
while (begin < s.length()) {
int end = begin + k - 1;
for (int i = Math.min(end, s.length() - 1); i >= begin; i--) {
sb.append(s.charAt(i));
}
begin = end + 1;
end = begin + k - 1;
if (begin < s.length()) {
for (int i = begin; i <= Math.min(s.length() - 1, end); i++) {
sb.append(s.charAt(i));
}
}
begin = end + 1;
}
return sb.toString();
}
}
- 剑指Offer 05.替换空格
class Solution {
public String replaceSpace(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
sb.append("%20");
} else {
sb.append(s.charAt(i));
}
}
return sb.toString();
}
}
- 151.翻转字符串里的单词
class Solution {
public String reverseWords(String s) {
// remove leading spaces
s = s.trim();
// split by multiple spaces
List<String> wordList = Arrays.asList(s.split("\\s+"));
Collections.reverse(wordList);
return String.join(" ", wordList);
}
}
- 剑指Offer58-II.左旋转字符串
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder sb = new StringBuilder();
for (int i = n; i < s.length(); i++) {
sb.append(s.charAt(i));
}
for (int i = 0; i < n; i++) {
sb.append(s.charAt(i));
}
return sb.toString();
}
}