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

牛客-倒置字符串

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.xdnf.cn/news/15727.html

相关文章:

  • SQL Server和PostgreSQL填充因子
  • debian的pulseaudio删掉也没事
  • SIMATIC WinCC Unified 使用 KPI 优化流程
  • Nacos配置管理
  • 【Unity3D实例-功能-移动】角色移动-通过WSAD(Rigidbody方式)
  • Kafka、RabbitMQ 与 RocketMQ 高可靠消息保障方案对比分析
  • TinyMCE 富文本编辑器在 vue2 中的使用 @tinymce/tinymce-vue
  • MySQL——约束类型
  • Vue 3 中封装并使用 IndexedDB 的完整教程(含泛型、模块化、通用 CRUD)
  • 网络爬虫概念初解
  • 【Unity】YooAsset问题记录
  • 如何在HTML5页面中嵌入视频
  • Git基础
  • 【每日算法】专题十五_BFS 解决 FloodFill 算法
  • 电脑windows系统深度维护指南
  • 微软原版系统下载的几个好用网站
  • [牛客2020提高赛前集训营day3] 牛半仙的魔塔
  • 在服务器(ECS)部署 MySQL 操作流程
  • Window延迟更新10000天配置方案
  • QML 动画效果详解
  • 巧用Callbre RVE生成DRC HTML report及CTO的使用方法
  • 从五次方程到计算机:数学抽象如何塑造现代计算
  • 板凳-------Mysql cookbook学习 (十二--------2)
  • Codeforces Round 1037(Div.3)
  • docker容器部署应用
  • Office-PowerPoint-MCP-Server:智能自动化PPT制作工具
  • 语义熵怎么增强LLM自信心的
  • Django母婴商城项目实践(八)- 数据渲染与显示之首页
  • 计算机网络:(十一)多协议标记交换 MPLS
  • 安全隔离新选择:SiLM5768L系列 - 集成互锁功能的高速六通道数字隔离器