当前位置: 首页 > news >正文

代码随想录刷题day22|(字符串篇)344.反转字符串、541.反转字符串 II

目录

一、题目思路

二、相关题目

三、总结与知识点

3.1 字符数组转换成字符串


一、题目思路

344反转字符串比较容易,双指针即可在空间复杂度为O(1)的基础上解决;

541反转字符串II :其中for循环中 i 每次的取值,不是 i++,这里一开始没想到,不知道怎么用变量控制2k的计数。。。

还有就是,字符串和字符数组之间的转换;

在进行反转时,尾指针的取值是和剩余字符的个数有关系;

首先 i 从0开始,每次取值更新+2k,根据剩余字符的数量,给出反转字符串的尾指针取值,在进行一次反转以后,跳出本次循环,后面的代码不再执行,i 值要更新;

其中,尾指针的取值,有些边界值要清楚,弄不清的时候画图代入;

二、相关题目

344.反转字符串

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

class Solution {public void reverseString(char[] s) {int left = 0;int right = s.length - 1;while(left < right){char temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}}
}

541.反转字符串II

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

class Solution {public String reverseStr(String s, int k) {char[] c = new char[s.length()];for(int i = 0;i < c.length;i++){c[i] = s.charAt(i);}//char[] c = s.toCharArray();for(int i = 0;i < c.length;i+=2 * k){  if((c.length - i) >= k){reverse(c,i,i + k -1);continue;}reverse(c,i,c.length - 1);}return new String(c);//return Arrays.toString(c);}public void reverse(char[] c, int i, int j){while(i < j){char temp = c[i];c[i] = c[j];c[j] = temp;i++;j--;}}
}

三、总结与知识点

3.1 字符数组转换成字符串

new String(c);

  • 作用:通过字符数组创建一个新的字符串对象。

  • 结果:它会将字符数组中的所有字符按顺序拼接成一个字符串。例如,如果字符数组 c {'a', 'b', 'c'},那么 new String(c) 的结果是 "abc"

  • 原理String 类的构造方法会将字符数组中的每个字符依次拼接,形成一个连续的字符串。

Arrays.toString(c); 

  • 作用:将数组转换为字符串表示形式。

  • 结果:它会返回一个表示数组内容的字符串,格式为 [元素1, 元素2, ...]。例如,如果字符数组 c{'a', 'b', 'c'},那么 Arrays.toString(c) 的结果是 "[a, b, c]"

  • 原理Arrays.toString 方法会遍历数组,并将每个元素用逗号分隔,同时用方括号括起来,形成一个字符串表示数组的结构。

总结:

  • 将字符数组直接拼接成一个字符串,应该使用 new String(c);

  • 保留数组的结构,以字符串形式展示数组内容,应该使用 Arrays.toString(c)。

 

http://www.lryc.cn/news/530121.html

相关文章:

  • python学opencv|读取图像(五十三)原理探索:使用cv.matchTemplate()函数实现最佳图像匹配
  • win10部署本地deepseek-r1,chatbox,deepseek联网(谷歌网页插件Page Assist)
  • 冯·诺依曼体系结构
  • 本地部署 DeepSeek-R1 模型
  • Mybatis——sql映射文件中的增删查改
  • 【开源免费】基于Vue和SpringBoot的流浪宠物管理系统(附论文)
  • nth_element函数——C++快速选择函数
  • DNS缓存详解(DNS Cache Detailed Explanation)
  • 课设:【ID0022】火车票售票管理系统(前端)
  • Ruby 类和对象
  • Java基础知识总结(三十八)--读取数据
  • 交错定理和切比雪夫节点的联系与区别
  • 大数据相关职位介绍之三(数据挖掘,数据安全 ,数据合规师,首席数据官,数据科学家 )
  • GitHub Actions定时任务配置完全指南:从Cron语法到实战示例
  • Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想
  • Easy系列PLC尺寸测量功能块ST代码(激光微距仪应用)
  • Manacher 最长回文子串
  • 51单片机开发:独立键盘实验
  • 组件框架漏洞
  • OFDM系统仿真
  • 基于单片机的盲人智能水杯系统(论文+源码)
  • 安心即美的生活方式
  • 安卓(android)订餐菜单【Android移动开发基础案例教程(第2版)黑马程序员】
  • 【cocos creator】【模拟经营】餐厅经营demo
  • 前端 | 深入理解Promise
  • Visual Studio Code修改terminal字体
  • 自然语言处理-词嵌入 (Word Embeddings)
  • 自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • 【论文笔记】Fast3R:前向并行muti-view重建方法
  • 谈谈你所了解的AR技术吧!