对输入的单词进行字典序排序输出: 字典序定义
- 单词中字母比较不区分大小写,两个单词先以第一个字母作为排序的基准,如果第一个字母相同, 就用第二个字母为基准,如果第二个字母相同就以第三个字母为基准。依此类推,如果到某个字母不相同,字母顺序在前的那个单词顺序在前。
- 当一个短单词和一个长单词的开头部分都相同(即短单词是长单词从首字母开始的一部分),短单词顺序在前。
- 字母大小写不同的相同单词,只输出一次。
输入描述:
不超过255个字符中,单词间用空格进行分隔,为简单起见,单词不包含连字符,无其它标点符号输出描述:
输出排序后的单词,单词之间用空格隔开(最后不带空格),重复的单词只输出一次。 示例1 输入 Hello hello world 输出 Hello world 升序排序
let list = ['Hello','hello','world']
//升序 o1 > o2 return 1 ; 降序 o1 > o2 return -1 ; 相等 return 0
function compare(o1,o2) {
let char1 = o1.split('');
let char2 = o2.split('');
let length = char1.length < char2.length ? char1.length : char2.length;
let charNum1 = 0
let charNum2 = 0
for(let i=0; i< length; i++) {
let a = char1[i] > 'a' ? char1[i] : char1[i].toLowerCase();
let b = char2[i] > 'a' ? char2[i] : char2[i].toLowerCase();
if(a < b) {
charNum2++
}else if(a > b) {
charNum1++
}
}
return charNum1 -charNum2
}
list.sort(compare)
// 去重
let resultList = []
for(let i of list){
let findResult = resultList.findIndex(e=>e.toLowerCase()===i.toLowerCase())
if(findResult<0){
resultList.push(i)
}
}
console.log(resultList.join(' '));