3道经典的算法题,看大家会不会。

  1. 写一个函数, 把字符串集合按照长度进行分拣 
    

    a) 输入: Set
    b) 输出: Map>, key 是输入字符串中的各种长度, value 是同一个长度的所有字符串的List.

  2. 要求将多个有序数组合并成一个数组,要求得到的最终结果数组有序排列,同时剔除两个数组中的重复数据。
    请设计一个简便算法。
    例如:第一个数组为1,3,5,9,11,18
    第二个数组为2,4,7,8,11,20
    要求得到的最终数组为1,2,3,4,5,7,8,9,11,18,20
    第一个数组为1,3,5,9,11,18
    第二个数组为2,4,7,8,11,20
    第三个数组为14,13
    要求得到的最终数组为1,2,3,4,5,7,8,9,11,13,14,18,20

  3. 有一个List集合,集合元素为Set对象,每一个Set对象含有元素为Character。
    要求设计一个算法得到Set对象所有元素可能组合。
    例如:List中有3个set对象,
    第一个set对象元素为11,12,13
    第二个set对象元素为99,AA,B,DD
    第三个set对象元素为7,8,34
    那么可能组合为
    11997,11998,119934,11AA7,11AA8,11AA34……

  1. 只要遍历set就可以了

根据每个元素的长度 判断 放入map

  1. 把这些array放到一个list中,然后使用Collections.sort来实现

  2. 使用递归 不难实现


实现 在java中使用现有工具类就可以简单实现了

算法谈不上经典~

看不明白你的意思

第一题意思不明...

第一个不难吧!!!
第二个我感觉 应该用TreeSet 因为不允许有重复元素!直接添加到set中
然后在排序!!输出就是无重复的排好序的组合