艾晓梅 发表于 2025-6-7 10:23:33

算法day07-字符串篇(1)

目录


[*]344 反转字符串
[*]反转字符串II
[*]替换数字
一、反转字符串

344. 反转字符串 - 力扣(LeetCode)

  本题要求原地反转字符串,即不使用额外空间修改 char[] s 中的字符顺序。考虑使用双指针法:

[*]定义两个指针 left 和 right,分别指向字符串的两端;
[*]依次交换 s 与 s,并将指针向中间靠拢(left++, right--);
[*]当两个指针相遇或交错时,说明反转完成。
  这种方式可以实现 原地反转,不需要额外空间,效率也很高。
class Solution {
    public void reverseString(char[] s) {
      int left = 0, right = s.length-1;
      while(left < right){
            char tmp = s;
            s = s;
            s = tmp;
            left++;
            right--;
      }
    }
}

//时间复杂度:O(N)
//空间复杂度:O(1)二、反转字符串II

  541. 反转字符串 II - 力扣(LeetCode)

   题目要求每隔 2k 个字符就反转前 k 个字符,剩下的部分按规则处理。可以直接对原字符串转为字符数组,在原地进行操作。

[*]每次以 i 为起点,步长为 2k,处理长度为 2k 的块;
[*]对每一块的前 k 个字符进行反转;
[*]为避免越界,右边界需取 Math.min(i + k - 1, s.length - 1);
[*]用双指针 left 和 right 进行字符交换,实现局部反转;
[*]最终将修改后的字符数组转回字符串返回。
public String reverseStr(String s, int k) {
      char[] arr = s.toCharArray();
      for (int i = 0; i < arr.length; i += 2 * k) {
            int left = i;
            int right = Math.min(i + k - 1, arr.length - 1);
            while (left < right) {
                char tmp = arr;
                arr = arr;
                arr = tmp;
            }
      }
      return new String(arr);
}三、替换数字

  54. 替换数字(第八期模拟笔试)

  
  遍历整个字符串,对于每个字符进行判断:

[*]如果是数字字符(如 '0'~'9'),就将其替换为 "number";
[*]如果是小写字母字符(如 'a'~'z'),就直接保留;
[*]最后将所有结果拼接为一个新的字符串返回。
class Main{    public static void main(String[] args){      Scanner in = new Scanner(System.in);      String s = in.nextLine();      StringBuilder sb = new StringBuilder();      for(char c : s.toCharArray()){            if(c >='0' && c

广性 发表于 2025-11-6 11:45:56

新版吗?好像是停更了吧。

胆饬 发表于 2025-12-8 08:00:11

鼓励转贴优秀软件安全工具和文档!

龙玮奇 发表于 2025-12-8 10:15:22

很好很强大我过来先占个楼 待编辑

翁谌缜 发表于 2026-1-5 23:13:58

感谢分享,学习下。

舒菀菀 发表于 2026-1-16 09:17:04

前排留名,哈哈哈

卿搞笔 发表于 2026-1-18 08:39:48

感谢分享,下载保存了,貌似很强大

搁胱 发表于 2026-1-18 16:35:21

感谢分享

栓州 发表于 2026-1-20 08:47:55

懂技术并乐意极积无私分享的人越来越少。珍惜

祖柔惠 发表于 2026-1-22 20:45:10

谢谢楼主提供!

阕阵闲 发表于 2026-1-23 02:03:37

谢谢楼主提供!

昝沛珊 发表于 2026-1-23 03:08:39

过来提前占个楼

热琢 发表于 2026-1-26 04:35:00

东西不错很实用谢谢分享

山芷兰 发表于 2026-1-26 06:01:02

感谢分享

靛尊 发表于 2026-1-27 07:55:57

前排留名,哈哈哈

均浇 发表于 2026-1-27 08:42:25

yyds。多谢分享

僻嘶 发表于 2026-2-1 03:47:05

不错,里面软件多更新就更好了

碛物 发表于 2026-2-1 06:00:40

感谢分享,下载保存了,貌似很强大

咫噎 发表于 2026-2-3 09:12:23

谢谢楼主提供!

马璞玉 发表于 2026-2-3 10:13:45

感谢分享,下载保存了,貌似很强大
页: [1] 2
查看完整版本: 算法day07-字符串篇(1)