ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

第八天| 344.反转字符串 ,541. 反转字符串II ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串

2026/9/20 18:58:28 拓冰建站 浏览量
第八天| 344.反转字符串 ,541. 反转字符串II ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串
第八天| 344.反转字符串 ,541. 反转字符串II ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串
/*** 2024/1/3 第八天 T1* 344.反转字符串*/
public void reverseString(char[] s) {int len = s.length;for (int i = 0; i < len / 2; i++) {char temp = s[i];s[i] = s[len - 1 - i];s[len - 1 - i] = temp;}}
  • ac
  • 解法和反转数组一样
/*** 2024/1/3 第八天 T2* 541.反转字符串II*/
public String reverseStr(String s, int k) {char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i += 2 * k) {int l = i;int r = Math.min(i + k -1,chars.length - 1);while (l < r){//数组反转 [l,r]char temp = chars[l];chars[l] = chars[r];chars[r] = temp;l++;r--;}}return new String(chars);}
  • ac
  • 第一想法就是转化为数组然后反转
  • String反转写法,1h
/*** 2024/1/3 第八天 T3* 卡码网:54.替换数字*/
public String replaceNumber(String s){StringBuilder sb = new StringBuilder();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (Character.isDigit(c)) sb.append("number"); //c >= '0' && c <= '9' ,也可以用Character.isDigit(c)来判断字符是否为数字字符。else sb.append(c);}return sb.toString();}
  • 直接用StringBuilder来追加一个个字符以及替换后的number
  • tips:Character.isDigit©可以用来判断字符是否为数字字符
  • String字符替换写法
/*** 2024/1/3 第八天 T4* 151.翻转字符串里的单词*/
//方法一:使用java自带库函数 时间复杂度大(不推荐)
public String reverseWords(String s) {String retS = "";String[] s1 = s.split(" ");for (int i = s1.length - 1; i >= 0; i--) {if ("".equals(s1[i])) continue; // " a a b" 可能有多个空格分割出 "" 这样的字符串retS += (s1[i] + " ");}//substring(start,end) 左闭右开区间 [start,end)return retS.substring(0,retS.length() - 1);// 去掉最后一个空格字符}
//方法二:空间复杂度为o(1),先反转整个字符串,然后去掉多余空格,然后反转每个单词。
/*** 2024/1/3 第八天 T5* 卡码网:55.右旋转字符串*/