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

牛客-倒置字符串

1.题目描述

2.题目链接

倒置字符串_牛客题霸_牛客网 

3.代码解答

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();// 按空格分割单词(处理多个连续空格的情况,split(" +") 匹配一个或多个空格)String[] words = s.split(" +");// 反转单词数组int left = 0;int right = words.length - 1;while (left < right) {// 交换左右指针的单词String temp = words[left];words[left] = words[right];words[right] = temp;left++;right--;}// 拼接反转后的单词数组StringBuilder result = new StringBuilder();for (int i = 0; i < words.length; i++) {result.append(words[i]);// 最后一个单词后不添加空格if (i != words.length - 1) {result.append(" ");}}System.out.println(result.toString());}
}

4.解题思路

1)字符串数组逆序

先把输入的原字符串读入String类型的字符串中,再以正则表达式匹配到的一个或者多个的空格为分界符读入字符串数组中,最后以字符串数组中的字符串元素为单位,逆序排列。

2)双重逆序

先把整个字符串逆序,再对每一个单词进行逆序。但是算法题目中的StringBuilder的reverse方法并不支持部分逆序,只支持全部逆序。在二次逆序的时候,算法题目中的Stringbuilder的subString方法也支持只有start这一种。很不方便而且时间复杂度极高。

5.代码细节

1)正则表达式处理多个空格的情况,同时split方法分割字符串为字符串数组

// 按空格分割单词(处理多个连续空格的情况,split(" +") 匹配一个或多个空格)String[] words = s.split(" +");

2)最后一个字符串数组元素后面不需要拼接空格

// 最后一个单词后不添加空格if (i != words.length - 1) {result.append(" ");}

http://www.dtcms.com/a/287998.html

相关文章:

  • 如何使用orthofinder进行同源基因鉴定
  • 【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )
  • Node.js dns 模块深入解析
  • python的第三方库的基本运用
  • node.js学习笔记1
  • Tomcat配置和部署项目
  • 从零手写红黑树(C++实现详解)
  • Java 中的继承与多态
  • 【OD机试】人民币转换
  • 小数点何去何从?教务系统成绩计算的精度与公平性博弈
  • Linux:lvs集群技术
  • 跨境卖家紧急自查,Endryko Karmadi四季版画版权维权
  • 单例模式的设计与实现
  • Helm常用命令大全(2025最新版)
  • 马拉车(Manacher)算法
  • 自动化立体仓库堆垛机控制系统上报堆垛机状态 FC5
  • PCA主成分分析
  • js (bom)
  • [论文阅读] 软件工程 | 用模糊逻辑“解锁”项目成功:告别非黑即白的评估时代
  • MybatisPlus-08.核心功能-IService开发基础业务接口
  • CAN通信驱动开发注意事项
  • 【工具自荐】配置文件管理器:支持本地与远程配置文件的统一管理、编辑、刷新
  • TCP/IP 哲学:端到端的 Postel 定律
  • 从单个神经元到数字识别神经网络的演变
  • 【黄山派-SF32LB52】—硬件原理图学习笔记
  • Java从入门到精通:全面学习路线指南
  • 阿里云ssl证书自动安装及续订(acme)
  • Python之--元组
  • 7月19日 台风“韦帕“强势逼近:一场与时间赛跑的防御战
  • 回溯算法(Backtracking Algorithm)