344. 反转字符串 - 力扣(LeetCode)
class Solution {
public void reverseString(char[] s) {
char a = ' ';
for(int i = 0;i<s.length/2;i++){
a = s[i];
s[i] = s[s.length-1-i];
s[s.length-1-i] = a;
}
}
}
这个写法有缺陷,当数组局部翻转时失效。替换为:
public void reverse(char[] s,int start,int end) {
char a = ' ';
while(start<end){
a = s[start];
s[start++] = s[end];
s[end--] = a;
}
}
541. 反转字符串 II - 力扣(LeetCode)
class Solution {
public String reverseStr(String s, int k) {
int n = s.length();
char[] arr = s.toCharArray();
for (int i = 0; i < n; i += 2 * k) {
reverse(arr, i, Math.min(i + k, n) - 1);
}
return new String(arr);
}
public void reverse(char[] s,int start,int end) {
char a = ' ';
while(start<end){
a = s[start];
s[start++] = s[end];
s[end--] = a;
}
}
}
这个写法就很简洁优美。
54. 替换数字(kamacoder.com)
import java.util.*;
class Main{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
String s = sc.next();
char[] ch = s.toCharArray();
StringBuilder sb = new StringBuilder();
for(char c:ch){
if(c>='a' && c<='z'){
sb.append(c);
}else{
sb.append("number");
}
}
System.out.println(sb.toString());
}
}
今天的题并不难,刚开始写时有点状态不好。有点厌烦,调整、适应。跟上刷题的节奏。