Lc63---1859将句子排序(排序)---Java版(未写完)

1.题目描述

在这里插入图片描述

2.思路

(1)首先将句子按空格分割成若干单词。
(2)每个单词的最后一个字符是它的位置索引。我们可以通过这个索引将单词恢复到正确的位置。
(3)按照单词的索引顺序排序这些单词。
(4)去掉每个单词最后的数字索引,还原成原来的单词。
(5)将这些单词按正确顺序连接成完整的句子。

3.代码实现

    public String sortSentence(String s) {
        // 将句子按空格分割成单词
        String[] words = s.split(" ");

        // 按照最后一个字符(位置索引)进行排序
        Arrays.sort(words, new Comparator<String>() {
            public int compare(String w1, String w2) {
                int index1 = Character.getNumericValue(w1.charAt(w1.length() - 1));
                int index2 = Character.getNumericValue(w2.charAt(w2.length() - 1));
                return Integer.compare(index1, index2);
            }
        });

        // 创建一个StringBuilder用于存储结果句子
        StringBuilder sten = new StringBuilder();
        
        // 去掉每个单词最后的数字索引,并按顺序连接成完整的句子
        for (String word : words) {
            sten.append(word.substring(0, word.length() - 1)).append(" ");
        }
        
        // 去掉最后一个多余的空格
        return sten.toString().trim();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值