【Java版oj】day02倒置字符串

news2024/11/19 23:24:32

目录

一、原题再现

二、问题分析

三、完整代码


一、原题再现

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

描述

将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

输入描述:

每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100

输出描述:

依次输出倒置之后的字符串,以空格分割

示例1

输入:

I like beijing.

输出:

beijing. like I

二、问题分析

本题解题思路很简单,只需要将每个单词单独置换,再将所有单词整个置换即可。

使用StringBuilder类,将String类转换StringBuilder类做字符串的拼接时空复杂度效率更佳。

本题方法一先用split()方法,将整个字符串按照空格划分,然后使用for循环对每个划分出来的单词进行置换,并逐一和空格拼接起来。最后整个置换,并使用trim()方法去掉两端空格。

本题方法二将String类转换成字符数组,利用while循环和自己写的置换方法。

关于字符串的相关操作可以参考这两篇博客:Java基础之神奇String类(一)_小熊爱吃软糖吖的博客-CSDN博客

Java基础之神奇String类(二)_小熊爱吃软糖吖的博客-CSDN博客

三、完整代码

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
   public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] splitStr = str.split(" ");
        for (String s : splitStr) {
            s = traver(s);
            sb = sb.append(s + ' ');
        }
        String ans = sb.toString();
        ans = traver(ans);
        ans = ans.trim();
        System.out.println(ans);
    }

    public static String traver(String str) {
        char[] array = str.toCharArray();
        int len = array.length;
        for (int i = 0; i < len / 2; i++) {
            char tmp = array[i];
            array[i] = array[len - i - 1];
            array[len - i - 1] = tmp;
        }
        String strAfter = new String(array);
        return strAfter;
    }
}

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str=in.nextLine();
        char[]array=str.toCharArray();
       reverse(array,0,array.length-1);
        int right=0;
        int left=0;
        while(left<array.length){
            if(right<array.length&&array[right]!=' '){
                right++;
                continue;
            }
            reverse(array,left,right-1);
            left=right+1;
            right=left;
        }
        String ans=new String(array);
        System.out.println(ans);

    }
    public static char[] reverse(char[]array,int start,int end){
        while(start<end){
            char tmp=array[start];
            array[start]=array[end];
            array[end]=tmp;
            start++;
            end--;
        }
        return array;
    }
}


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端期末大作业 html+css+javascript+jquery+bootstarp响应式鲜花售卖网站16页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

最新最全面的Java面试题及答案(212道)

文章目录一. Java 基础1. JDK 和 JRE 有什么区别&#xff1f;2. 和 equals 的区别是什么&#xff1f;3. 两个对象的 hashCode() 相同&#xff0c;则equals() 也一定为true&#xff0c;对吗&#xff1f;4. final 在 Java 中有什么作用&#xff1f;5. Java 中的 Math. round(-1.…

【图像分割】基于Kmean聚类 分水岭、oust、粒子群算法优化脂肪肝图像分割附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

OPT(奥普特)工控机新品上市,产品矩阵再扩大

近日&#xff0c;OPT&#xff08;奥普特&#xff09;发布工控机新品&#xff0c;进一步扩展产品矩阵&#xff0c;为制造业数字化转型提供更为全面的机器视觉产品和服务。 OPT&#xff08;奥普特&#xff09;上市的工控机共有两大系列&#xff0c;分别是3U桌面式和4U上架式的设…

【金猿人物展】映盛中国CEO谭运猛博士:数字化逆向重构将会占据行业红利成为新宠...

‍谭运猛本文由映盛中国创始人兼CEO谭运猛撰写并投递参与“数据猿年度金猿策划活动——2022大数据产业趋势人物榜单及奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年伴随着新冠疫情的反复和经济下行的持续影响&#xff0c;各行各业都面临着数字化转型的行…

【每日小技巧】如果Tomcat的端口被占用,怎么处理该报错

苦恼的问题&#xff1a;当我们在用Tomcat时&#xff0c;发现我们要用的端口被其他程序占用了&#xff0c;如图&#xff1a; 解决办法&#xff1a; ①winR&#xff0c;输入cmd&#xff0c;打开命令行 输入命令netstat -ano&#xff0c;列出所有的端口号使用情况 ②查看PID&#…

矩阵理论复习(四)

2003年试题 向量二范数也具有酉不变性 Schur定理的应用 向量范数的判定 向量范数的比较 酉矩阵的M-P广义逆就为该矩阵的转置 列满秩矩阵的左逆 一个矩阵乘以其逆矩阵等于单位矩阵&#xff0c;单位矩阵的算子范数均为1&#xff0c;算子范数的相容性 正规矩阵的性质 …

嵌入式:ARM的工作模式与寄存器组织

文章目录特权模式处理器启动时的模式转换图ARM的寄存器组织ARM寄存器组成概述ARM状态下的寄存器组织Thumb状态下的寄存器组织CPSR&#xff08;当前程序状态寄存器&#xff09;的低5位用于定义当前操作模式 , 如图示特权模式 除用户模式外的其他6种模式称为特权模式。 特权模式…

nodejs基于vue技术的小饰品购物商城网站

开发语言&#xff1a;nodejs 框架&#xff1a;Express 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;VS code/HBuilder X 浏览器&#xff1a;谷歌浏览器 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本…

【C++常用容器】STL基础语法学习queue容器

目录 ●queue的基本概念 ●queue常用接口 ●构造函数 ●赋值操作 ●数据存取 ●大小操作 ●queue的基本概念 简要介绍&#xff1a;queue是一种先进先出的的数据结构&#xff0c;它有两个出口。队列容器允许从一端新增元素&#xff0c;从另一端移除元素。队列中只有队…

如何批量查询谷歌PR权重是多少?谷歌PR权重怎么批量查询

权重是就是网站在搜索引擎心目中的位置&#xff0c;如果一个网站在搜索引擎心目中的位置高的话&#xff0c;当然容易获得较好的排名&#xff0c;今天不是来跟大家聊如何提升网站权重的&#xff0c;而是教大家如何去看一个网站的权重&#xff0c;做网站的朋友都要知道要做关键词…

RadSystems Studio构建CRUD操作程序

RadSystems Studio构建CRUD操作程序 RadSystems Studio是一个快节奏的开发环境&#xff0c;不需要专门的编程。该软件提供了数字解决方案和组件&#xff0c;以尽快在API和UI中构建程序&#xff0c;只需少量代码&#xff0c;甚至无需编写。该软件减少了编写时间并改进了开发过程…

win10 安装配置nvm

第一步:下载安装包 链接&#xff1a;https://pan.baidu.com/s/1B_gc9DnM8s3utcd_DB1H4Q?pwdxm03 提取码&#xff1a;xm03 第二步:安装nvm 第三步:配置nvm setting文件加上淘宝镜像 node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.or…

【python】os.system() os.popen() 在 python 执行 cmd 指令

先说总结 os.system&#xff1a;获取程序执行命令的返回值。 os.popen&#xff1a; 获取程序执行命令的输出结果。 commands&#xff1a;获取返回值和命令的输出结果。1 os.system() 这个方法是直接调用标准C的system() 函数&#xff0c;仅仅在一个子终端运行系统命令&#x…

作业-12.9【手动实现封装栈、队列模板类】

代码实现 #include <iostream> #include <queue> using namespace std; template <typename T> class My_queues { private: //队列数据存储空间 T *data; //头下标 int head; //尾下标 int tail; int max_len; public: //无参构造函数 My_queues():data(NUL…

信息搜集方法总结

文章目录前言一、域名和IP信息搜集&#xff08;一&#xff09;判断是否使用CDN&#xff08;二&#xff09;存在CND时查找真实IP&#xff08;三&#xff09;WHOIS信息查询&#xff08;四&#xff09;备案信息查询&#xff08;五&#xff09;给定IP反查其他信息&#xff08;六&am…

实现微信通知提醒的方法总结

一、使用企业微信群机器人接口效果&#xff1a;微信群消息通知优点&#xff1a;后台运行不受干扰性能稳定、群内多人同时接收通知、无需登录微信、支持微信图文消息缺点&#xff1a;只适用于企业微信群、有发送频率限制使用方法&#xff1a; 1、拉一个企业微信群&#xff0c;在…

TACL 2022 | GAL:合成文本在自然语言处理任务中的应用

©PaperWeekly 原创 作者 | 何玄黎单位 | 伦敦大学学院&#xff08;UCL&#xff09;研究方向 | 自然语言处理论文标题&#xff1a;Generate, Annotate, and Learn: NLP with Synthetic Text收录会议&#xff1a;TACL 2022论文链接&#xff1a;https://arxiv.org/abs/2106.…

无需注册试用ChatGPT

无需注册试用ChatGPT OpenAI账号有诸多限制&#xff0c;包括地区限制&#xff0c;手机号注册等&#xff0c;参考ChatGPT注册试用全攻略。不开全局代理&#xff0c;还会出现Not available OpenAIs services are not available in your country. 所以有没有什么途径&#xff0c;…

ADI Blackfin DSP处理器-BF533的开发详解17:IIS+AUDIO音频codec的应用(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 很早期做的设计&#xff0c;用的是TI的一颗音频codec&#xff0c;如果要放到今天&#xff0c;我肯定是用ADI的SigmaDSP了&#xff0c;ADI所有的Si…