跟着代码随想录刷题的第七天
代码随想录链接:代码随想录
part01 反转字符串
题目链接:344.反转字符串
代码:
class Solution {
public void reverseString(char[] s) {
int l = 0;
int r = s.length - 1;
char tmp;
while(l<r){
tmp = s[l];
s[l] = s[r];
s[r] = tmp;
l++;
r--;
}
}
}
题解:使用双指针。向中间元素逼近,并且交换位置。
part02 反转字符串II
题目链接:541. 反转字符串II
代码:
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
for(int i = 0;i<s.length();i+=2*k)
{
int start = i;
int end = Math.min(s.length() - 1,start + k-1);
while(start<end)
{
char tmp = ch[start];
ch[start] = ch[end];
ch[end] = tmp;
start++;
end--;
}
}
return new String(ch);
}
}
part03 替换数字
题目链接:替换数字
代码:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
char[] sin = s.toCharArray();
StringBuilder a = new StringBuilder();
for (int i = 0; i < sin.length; i++) {
if (Character.isDigit(sin[i])) {
a.append("number");
} else {
a.append(sin[i]);
}
}
System.out.println(a);
}
}