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

leetcode-08-[151]翻转字符串里的单词[卡码网55]右旋转字符串

一、[151]翻转字符串里的单词

重点:见注释

class Solution {public String reverseWords(String s) {//1、移除多余的空格StringBuilder stringBuilder = removeSpace(s);//2、反转整个字符串reverse(stringBuilder,0,stringBuilder.length()-1);//3、反转每个单词reverseEachWord(stringBuilder);return stringBuilder.toString();}StringBuilder removeSpace(String s){StringBuilder stringBuilder=new StringBuilder();int left=0,right=s.length()-1;while(s.charAt(left)==' '){left++;}while(s.charAt(right)==' '){right--;}for(int i=left;i<right+1;i++){if(s.charAt(i)!=' '){stringBuilder.append(s.charAt(i));}else if(stringBuilder.charAt(stringBuilder.length()-1)!=' '){//若结束位置不为空格,则加个空格,否则什么也不做stringBuilder.append(s.charAt(i));}}return stringBuilder;}//设置开始结束的标记void reverse(StringBuilder stringBuilder,int left,int right){while(left<right){char tmp = stringBuilder.charAt(left);//设置值setCharAtstringBuilder.setCharAt(left,stringBuilder.charAt(right));stringBuilder.setCharAt(right,tmp);left++;right--;}}//注意一下void reverseEachWord(StringBuilder stringBuilder){int left=0,right=1;int n=stringBuilder.length();while(left<n){while(right<n&&stringBuilder.charAt(right)!=' '){right++;}reverse(stringBuilder,left,right-1);left=right+1;right=left+1;}}}

二、[卡码网55]右旋转字符串

重点:技巧

反转三次

import java.util.Scanner;public class Main{public static void main (String[] args) {Scanner in=new Scanner(System.in);int n=Integer.parseInt(in.nextLine());String s=in.nextLine();int len=s.length();char[] chars=s.toCharArray();reverse(chars,0,len-1);reverse(chars,0,n-1);reverse(chars,n,len-1);System.out.println(chars);}public static void reverse(char[] ch,int start,int end){while(start<end){char tmp=ch[start];ch[start]=ch[end];ch[end]=tmp;start++;end--;}}
}

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

相关文章:

  • Json-server 的使用教程
  • LLM中表格处理与多模态表格理解
  • 短剧系统搭建全攻略:功能齐全,一步到位
  • 【Linux】进程_7
  • 从中概回购潮,看互联网的未来
  • 【OceanBase DBA早下班系列】—— 性能问题如何 “拍CT“ (一键获取火焰图和扁鹊图)
  • 4.类,方法,对象
  • 重学java 71.网络编程
  • Linux驱动面试题
  • git 如何强制下拉某个分支
  • linux-touch指令
  • 海外仓系统有哪些?主流海外仓系统类型、优缺点,不同海外仓如何选择
  • 05-5.4.1 树的存储结构
  • Spring事务管理与Spring AOP详解
  • LaTeX 的使用
  • Text2SQL之Vanna优化
  • 船舶行业信息安全解决方案介绍
  • Typora—适用于 Mac 和 Win 系统的优秀 Markdown 文本编辑器
  • 产品经理的未来在哪里?
  • 火车头采集怎么使用GPT等AI原创文章
  • 多元多项式的特征列与零点的关系定理
  • git - LFS 使用方法
  • 提高磁盘可靠性的技术:保障数据安全的四大方法
  • CesiumJS【Basic】- #006 浏览器控制台查看位置角度
  • Mac 终端报错 zsh: command not found: brew 解决方案
  • 详解 HBase 的常用 API
  • JSR303校验
  • 04 远程访问及控制
  • [晕事]今天做了件晕事38 shell里的source 点号
  • java如何分割字符串