Leetcode344 反转字符串
题目链接
双指针思想 交换字符即可
class Solution {public void reverseString(char[] s) {int l = 0;int r = s.length-1;while(l<r){char tep = s[l];s[l] = s[r];s[r] = tep;l++;r--;}}
}
Leetcode541 反转字符转2
题目链接
讲解
理顺题目逻辑即可
每次直接跳入后2k个
根据剩余的字符判断反转的串
不足k个直接全部反转,不到2k大于k就反转前k个
class Solution {public String reverseStr(String s, int k) {char[] ch = s.toCharArray();// 1. 每隔 2k 个字符的前 k 个字符进行反转for (int i = 0; i< ch.length; i += 2 * k) {// 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符if (i + k <= ch.length) {reverse(ch, i, i + k -1);continue;}// 3. 剩余字符少于 k 个,则将剩余字符全部反转reverse(ch, i, ch.length - 1);}return new String(ch);}public void reverse(char[] ch, int i, int j) {for (; i < j; i++, j--) {char temp = ch[i];ch[i] = ch[j];ch[j] = temp;}
}
}
替换数字54
import java.util.Scanner;class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();StringBuilder sb = new StringBuilder();for (int i = 0; i < s.length(); i++) {if (Character.isDigit(s.charAt(i))) {sb.append("number");}else sb.append(s.charAt(i));}System.out.println(sb);}
}