当前位置: 代码迷 >> 综合 >> 【Leetcode】1451. Rearrange Words in a Sentence
  详细解决方案

【Leetcode】1451. Rearrange Words in a Sentence

热度:46   发布时间:2024-02-23 01:57:33.0

题目地址:

https://leetcode.com/problems/rearrange-words-in-a-sentence/

给定一个英文句子,它由若干单词组成,单词之间以空格分开,并且句子首字母大写,其余字母都小写。要求返回一个英文句子,也要求首字母大写,其余字母都小写,单词间以空格分开,并且单词还是原先句子的单词,但是按照长度排序;如果长度一样,则按照原句子中的顺序排序。

由于java中对引用类型的排序是稳定的,所以可以直接排序。代码如下:

import java.util.Arrays;public class Solution {
    public String arrangeWords(String text) {
    String[] ss = text.split(" ");Arrays.sort(ss, (s1, s2) -> Integer.compare(s1.length(), s2.length()));StringBuilder sb = new StringBuilder();for (int i = 0; i < ss.length; i++) {
    sb.append(ss[i].toLowerCase()).append(' ');}sb.setLength(sb.length() - 1);// 首字母改为大写sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));return sb.toString();}
}

时间复杂度O(nllog?n)O(nl\log n)O(nllogn),空间O(nl)O(nl)O(nl)