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

代码随想录算法训练营第九天| 151.翻转字符串里的单词、55.右旋转字符串 、字符串总结

151.翻转字符串里的单词

初始思路:先遍历一遍,统计字符串中单词加上空格的长度。然后设立一个指针,指向旧字符串的最后一个,倒着把旧字符串复制到新字符串中(复制的时候遇到空格只复制一个,同时去掉前后的空格),然后用双指针法把新字符串中的单词正过来(一个指针指向单词的第一个,另一个一直遍历到下一个位置是空格或者是字符串的最后一个位置)。

class Solution {public String reverseWords(String s) {StringBuilder sb =  removeSpace(s);reverseString(sb, 0,sb.length()-1);reverseEachWords(sb);return sb.toString();}StringBuilder removeSpace(String s){//先去除首尾空格int left = 0;int right = s.length() - 1;while(s.charAt(left) == ' ') left++;while(s.charAt(right) == ' ') right--;StringBuilder sb = new StringBuilder();//存放最后处理好的字符串//去除中间空格while(left <= right){//从头到尾遍历,要包括等于,因为最后一个单词也要转移char c = s.charAt(left);if(c != ' ' || sb.charAt(sb.length() - 1) != ' '){//若当前不是空格 或 当前是空格但是新字符串的前一个不是空格sb.append(c);}left++;}return sb;}void reverseString(StringBuilder sb, int left, int right){while(left < right){char temp = sb.charAt(left);sb.setCharAt(left, sb.charAt(right));sb.setCharAt(right, temp);left++;right--;}}void reverseEachWords(StringBuilder sb){int left = 0;int right = 1;int length = sb.length();while(right<length){while(right < length && sb.charAt(right) != ' '){right++;}reverseString(sb,left,right-1);left = right+1;right = left +1;}}
}

55.右旋转字符串

思路:先把字符串整体逆置,再把前n个逆置,再把剩余的逆置。

 字符串总结

面试的时候可能分析时间复杂度,这时候需要属性常见库函数的时间复杂度;

写代码的时候,一些常见的方法和常用类要熟记。

鉴于作者水平有限,文章可能存在错误

如有指正,十分感谢

http://www.xdnf.cn/news/12275.html

相关文章:

  • CLIP多模态大模型的优势及其在边缘计算中的应用
  • 实时云渲染解决UE像素流送无法进行二次开发的问题
  • spring注解之配置注解
  • 《图解技术体系》How Redis Architecture Evolves?
  • 【科研绘图系列】R语言绘制和弦图(Chord diagram plot)
  • 大模型数据流处理实战:Vue+NDJSON的Markdown安全渲染架构
  • 高防服务器能够抵御哪些网络攻击呢?
  • 宠物空气净化器哪个好用?2025宠物空气净化器测评:352、希喂、有哈
  • 智慧园区数字孪生全链交付方案:降本增效30%,多案例实践驱动全周期交付
  • 基于正点原子阿波罗F429开发板的LWIP应用(5)——TFTP在线升级功能
  • Spring之事务管理方式
  • Go中的协程并发和并发panic处理
  • GitHub 趋势日报 (2025年06月04日)
  • Linux --环境变量,虚拟地址空间
  • 强化学习在LLM中应用:RLHF、DPO
  • 网络通信核心概念全解析:从IP地址到TCP/UDP实战
  • 面试题:Java多线程并发
  • JAVA之 Lambda
  • chrome使用手机调试触屏web
  • Nginx学习笔记
  • 【Go语言基础【2】】数据类型之基础数据类型:数字、字符、布尔、枚举、自定义
  • Unity3D中Newtonsoft.Json序列化优化策略
  • [蓝桥杯]倍数问题
  • 倍福 PLC程序解读
  • kubectl 命令
  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(2)
  • 游戏设计模式 - 子类沙箱
  • 计算机网络备忘录
  • SDC命令详解:使用set_fanout_load命令进行约束
  • AI Agent 项目 SUNA 部署环境搭建 - 基于 MSYS2 的 Poetry+Python3.11 虚拟环境