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();}