【剑指offer】面试题58 - I:翻转单词顺序(Java)

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。

 

示例 1:

输入: "the sky is blue"
输出: "blue is sky the"
示例 2:

输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:

输入: "a good   example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
 

说明:

无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
注意:本题与主站 151 题相同:https://leetcode-cn.com/problems/reverse-words-in-a-string/

代码:

class Solution {

    public String reverseWords(String s) {

        String x = s.trim();

        char arr[] =  s.toCharArray();

        StringBuilder sb = new StringBuilder();

        List<String> list = new ArrayList<>();

        for(int i=0;i<arr.length;i++)

        {

            if(arr[i]!=' ')

            {

                sb.append(arr[i]);

            }

            if(i!=arr.length-1)

            {

                if(arr[i]==' '&&arr[i+1]!=' ')

                {

                    String t = sb.toString();

                    list.add(t);

                    sb = new StringBuilder();

                }

            }

            else

            {

                String t = sb.toString();

                list.add(t);

            }

        }

        int k =list.size()-1;

        sb = new StringBuilder();

        while(k>=0)

        {

            sb.append(' ');

            sb.append(list.get(k));

            k--;

        }

        return sb.toString().trim();

    }

}

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

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

相关文章

Hinton:我终于想明白大脑怎么工作了!神经学家花三十年,寻找反向传播的生物机制...

来源&#xff1a;智源社区作者&#xff1a;Anil Ananthaswamy编译&#xff1a;梦佳「有一天晚上&#xff0c;我回家吃饭&#xff0c;激动地说『我终于想明白大脑是怎么工作的了&#xff01;』我15岁的女儿对我说&#xff0c;怎么又来了&#xff0c;老爸。」 …

Mybatis学习笔记(一)——项目搭建、导入依赖、相关配置

Mybatis学习笔记&#xff08;一&#xff09;——项目搭建、导入依赖、相关配置 传送门&#xff1a;Mybatis中文网&#xff08;入门手册&#xff09;Mybatis中文网 一、新建项目 在项目中新建模块&#xff1a; 二、学习Mybatis常用的依赖&#xff1a; <dependencies…

you *might* want to use the less safe log_bin_trust_function_creators variable

MySQL you *might* want to use the less safe log_bin_trust_function_creators variable 刷脚本时&#xff0c;多次遇到这个问题&#xff0c;是因为当前版本的数据库默认关闭了一个配置。执行如下命令可解决该问题&#xff1a; SET GLOBAL log_bin_trust_function_creators …

【剑指offer】面试题58 - II:左旋转字符串(Java)

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如&#xff0c;输入字符串"abcdefg"和数字2&#xff0c;该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1&#xff1a; 输入: s &qu…

数学与工业革命

来源&#xff1a;中科院数学与系统科学研究院作者&#xff1a;黄雷&#xff0c;中科院数学与系统科学研究院数学&#xff0c;无时无刻不散发着它独特的魅力。上到宇宙飞船遨游外太空&#xff0c;下至小商小贩行走菜市间&#xff0c;这门与每个人生活都息息相关的学科一直在默默…

C语言 - strcpy和strncpy的编程实现及总结

一、字符串的strcpy与strncpy函数 1、编程实现strcpy函数&#xff08;笔试很容易考到&#xff09; 要求&#xff1a;  原型&#xff1a;char *stpcpy(char *strDest,char *strSrc); 头文件&#xff1a;#include <string.h> 功能&#xff1a;把src所指由NULL结束的字符…

Mybatis学习笔记(二)——增、删、改、查

Mybatis学习笔记——增、删、改、查 Mybatis实现增删改查&#xff0c;实际要考虑SQL语句的书写&#xff0c;再细致一点&#xff0c;重点要掌握查询操作SQL关联查询等操作。 就像上篇博客&#xff0c;我们首先要思考的就是&#xff1a;是什么把接口&#xff0c;映射文件&#x…

【剑指offer】面试题60:n个骰子的点数(Java)

把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n&#xff0c;打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案&#xff0c;其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 示例 1: 输入: 1 输出: [0.16667…

AI回溯过去解决复杂任务 |《自然》论文

来源&#xff1a;Nature Portfolio根据《自然》本周发表的一项研究First return, then explore&#xff0c;一类增强学习算法在雅达利经典游戏中的得分超过了人类玩家和先进的人工智能系统&#xff0c;算法挑战的游戏包括《蒙特祖马的复仇》&#xff08;Montezuma’s Revenge&a…

python数据图形化—— matplotlib 基础应用

matplotlib是python中常用的数据图形化工具&#xff0c;用法跟matlab有点相似。调用简单&#xff0c;功能强大。在Windows下可以通过命令行 pip install matplotlib 来进行安装。 以下为一些基础使用的例子&#xff1a; 1、绘制直线 先通过numpy生成在直线 y 5 * x 5 上的一组…

【剑指offer】面试题61:扑克牌中的顺子(java)

从扑克牌中随机抽5张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。A 不能视为 14。 示例 …

Snipaste的安装及快捷键的设置

Snipaste的安装及快捷键的设置 关于Snipaste&#xff1a; Snipaste 是一个简单但强大的截图工具&#xff0c;也可以让你将截图贴回到屏幕上&#xff01;可以将剪贴板里的文字或者颜色信息转化为图片窗口&#xff0c;并且将它们进行缩放、旋转、翻转、设为半透明&#xff0c;甚…

人与机器人的交互理论及其前景

来源&#xff1a;人机认知与实验室摘要&#xff1a;移动机器人的人机交互正处于早期阶段。大部分与机器人相关的用户交互都被数控能力所限制&#xff0c;向用户提供的最普遍的界面是以自动化平台提供的视频和对机器人的一定程度上的路径指挥。对于半自动能力的移动机器人&#…

【剑指offer】面试题62:圆圈中最后剩下的数字(Java)

0,1,,n-1这n个数字排成一个圆圈&#xff0c;从数字0开始&#xff0c;每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如&#xff0c;0、1、2、3、4这5个数字组成一个圆圈&#xff0c;从数字0开始每次删除第3个数字&#xff0c;则删除的前4个数字依次是…

计算机组成原理——Cache与主存的地址映射

Cache–主存的地址映射 由主存地址映象到cache地址称为地址映射 cache的基本结构&#xff1a; Cache的工作过程&#xff1a; CPU发出一个地址&#xff0c;同时发给主存和cache的地址映射机构&#xff0c;CPU会从主存中取出字还是从cache中取出字&#xff0c;主存将块号送入主…

Java 日期与时间

1、获取当前时间 Date date new Date();System.out.println(date);//Sun Mar 31 11:45:14 CST 2019Calendar calendar Calendar.getInstance();System.out.println(calendar);//java.util.GregorianCalendar...//import java.sql.Timestamp;Timestamp timestamp new Timesta…

申工智能有没有作弊?

来源&#xff1a;北国骑士在2021年农心杯赛场&#xff0c;韩国天才棋手申真谞连胜五轮&#xff0c;帮助韩国队夺得了阔别很久的团队冠军奖杯。从一连串的棋局来看&#xff0c;不管是日本选手还是中国对手&#xff0c;在韩国棋手面前都“不堪一击”。以申真谞为例&#xff0c;几…

浮点数加减法运算(对阶、尾数求和、规格化、舍入、溢出判断)

浮点数的加减法运算 前言&#xff1a; 运算过程&#xff1a;对阶、尾数求和、规格化、舍入、溢出判断 浮点加减运算 在计算机中&#xff0c;加减法运算用补码实现。 算术运算的常识&#xff1a;两个浮点数如果要进行加减法运算&#xff0c;它们的阶或者指数必须相等。 一、…

【剑指offer】面试题63:股票的最大利润(Java)

假设把某股票的价格按照时间先后顺序存储在数组中&#xff0c;请问买卖该股票一次可能获得的最大利润是多少&#xff1f; 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天&#xff08;股票价格 1&#xff09;的时候买入&#xff0c;在第 5 天&#xff08;股票价格 6&a…

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转)

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转) 1.数据库设计 2.主页面展示 3.代码展示&#xff1a; index.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC …