首页 > 其他分享 >力扣151 反转字符串中的单词

力扣151 反转字符串中的单词

时间:2022-12-20 23:22:19浏览次数:53  
标签:151 单词 ch int 力扣 while 字符串 空格

题目:

给你一个字符串 s ,请你反转字符串中 单词 的顺序。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

示例:

输入:s = "  hello world  "
输出:"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。

思路:

1.直接思路

class Solution {
    public String reverseWords(String s) {
        char[]  ch=s.toCharArray();//原
        if(s==null||s.length() == 0){
            return s;
        }
        StringBuilder sb=new StringBuilder();//新
        int i = ch.length-1;
        while(i>=0){
            while(i>=0&&ch[i]==' '){//跳过空格
                i--;
            }
            int right=i;//记录单词结束位置
            while(i>=0&&ch[i]!=' '){
                i--;//找到单词起始位置
            }
            for(int j=i+1;j<=right;j++){//j从单词起始位置到结束位置
                sb.append(ch[j]);
                if(j == right){
                    sb.append(" ");//空格
                }
            } 
        }
        //删除最后的空格
        sb.deleteCharAt(sb.length()-1);
        return sb.toString();
    }
}

tips:

s == null; 表示s还没有占用存储空间。
s.length() == 0; 表示s占用存储空间,但是其中还没有元素。

 

标签:151,单词,ch,int,力扣,while,字符串,空格
From: https://www.cnblogs.com/cjhtxdy/p/16982633.html

相关文章

  • 力扣-581-最短无序连续子序列
    能不能把问题转化为找第一个逆序对和最后一个逆序对 intfindUnsortedSubarray(vector<int>&nums){ intres=0; intstartIndex=-1,endIndex=-1; for(inti=......
  • 力扣-538-把二叉搜索树转换为累加树
    intpreSum=0; voidtraversal(TreeNode*root){ if(!root)return; traversal(root->right); root->val+=preSum; preSum=root->val; traversal(roo......
  • 力扣-406-根据身高重建队列
    第一眼觉得有一种逆向单调栈的既视感看评论区举了一个很生动形象的例子,自己还是写不出来vector<vector<int>>reconstructQueue(vector<vector<int>>&people){ vector......
  • 编程常用单词1500个
    很实用的编程英语词库,共收录一千五百余条词汇。第一部分:application应用程式应用、应用程序applicationframework应用程式框架、应用框架应用程序框架architectur......
  • 力扣-739-每日温度
    返回一个数组,ans[i]表示相对于第i天的温度而言,下一个更高的温度出现在几天后如果没有就是0一开始接单粗暴地两层for循环遍历,不出意外地超时了后来又想到可以排序后比对......
  • 力扣025 K组中的反向节点
    力扣025K组中的反向节点题目:给定链表的,一次反转列表的节点,并返回修改后的列表。head``kk`是一个正整数,小于或等于链表的长度。如果节点数不是节点的倍数,那么最终省略......
  • 「双指针/kmp」通过连接另一个数组的子数组得到一个数组(力扣第1764题)
    本题为12月17日力扣每日一题题目来源:力扣第1764题题目tag:双指针kmp题面题目描述给你一个长度为n的二维整数数组groups,同时给你一个整数数组nums。你是否可以从n......
  • 力扣每日一题2022.12.17---1764. 通过连接另一个数组的子数组得到一个数组
    给你一个长度为n 的二维整数数组 groups ,同时给你一个整数数组 nums 。你是否可以从nums 中选出n 个不相交的子数组,使得第i 个子数组与groups[i] (下标从0......
  • 好题分享、心路历程(力扣1661)
    又来到了【好题分享】专栏~这次博主要分享的,是既力扣1179之后的姊妹题。只能用几个字来描述:旧瓶换新酒,如出一辙!【题目介绍】该题为力扣1661,名为每台机器的进程平均运行......
  • 力扣---918. 环形子数组的最大和
    给定一个长度为n的环形整数数组 nums ,返回 nums 的非空子数组的最大可能和 。环形数组 意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是......