从子字符串数组在javascript中做一个短字符串?

时间:2019-07-17 04:41:32

标签: javascript node.js algorithm lexicographic

我正在尝试解决给定数组为arr=["dd","dda","ddb"]的黑客排名问题

根据问题,我必须按字母顺序制作一个字符串 根据黑客的排名,正确的o / p是“ ddaddbdd”

对于某些测试用例,排序和连接工作没有通过,但是大多数测试用例都没有通过>是否有解决此问题的建议?

我尝试对字符串进行排序,然后按如下所示将它们加入,但没有得到输出。

arr=arr.sort((a,b)=>a.localeCompare(b));

str=arr.join("")

2 个答案:

答案 0 :(得分:1)

您需要先对数组内的单个元素进行排序,然后再加入

let arr=["dd","dda","ddb"]

let final = arr.map(str=> str.split('').sort().join('')).join('')

console.log(final)

答案 1 :(得分:0)

一种“古老就是黄金”的方法:

  1. 从数组中获取每个字符串项

  2. 将其转换为char数组

  3. 对char数组进行排序

  4. 将其放回字符串数组

function getInSort(a){

 for(var i=0; i<a.length; i++){
    let temp = a[i].split('');
    temp.sort();
    a[i] = temp.join('');
 }
 return a.join('');
}
console.log(getInSort(["dd","dda","ddb"]));