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