前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法练习(20) - 将一个交错数据合并为一个一维数组

算法练习(20) - 将一个交错数据合并为一个一维数组

作者头像
惊羽-布壳儿
发布2022-06-15 16:10:27
6080
发布2022-06-15 16:10:27
举报
文章被收录于专栏:惊羽-布壳儿

题目

编程题(20分钟) 将一个交错数据合并为一个一维数组 输入: strJaggedArray[][], 由多个一维数组(长度不定,个数不定)组成的交错数组 输出: strArray[], 由strJaggedArray[r][c]中的元素以"&"为分隔符拼合而成, 是strJaggedArray中数组元素的无重复组合(不考虑顺序)

举例:

代码语言:javascript
复制
输入: strJaggedArray[0]=new string[] {"we","are","student"};
      strJaggedArray[1]=new string[] {"say","what"};
输出: strArray[]={"we&say","we&what","are&say","are&what","student&say","student&what"}

输入: strJaggedArray[0]=new string[] {"cs","app"};
      strJaggedArray[1]=new string[] {"good","cool","dev"};
      strJaggedArray[2]=new string[] {"king","of","the","world"};
输出: strArray[]={"cs&good&king","cs&good&of","cs&good&the","cs&good&world","cs&cool&king","cs&cool&of","cs&cool&the","cs&cool&world",...}

题解

代码语言:javascript
复制
public class StrJaggedArray {

    public static void main(String[] args) {
        String[][] strJaggedArray = new String[2][3];
        String[] s1 = {"we","are","student"};
        strJaggedArray[0] =s1;
        String[] s2 = {"say","what"};
        strJaggedArray[1] = s2;
        Object[] strings = strJaggedArray(strJaggedArray);

    }

    private static Object[] strJaggedArray(String[][] strJaggedArray) {

        ArrayList<String> all = new ArrayList<>();

        HashSet<String> res = new HashSet<>();
        for ( String[] sArr: strJaggedArray) {
            for (String string : sArr) {
                all.add(string);
            }
        }
        int p1 = 0;
        for ( String[] sArr: strJaggedArray) {
            for (int i = 0; i < sArr.length; i++) {
                for (int j = 0; j < all.size(); j++) {
                    if(j < p1 || j >= p1 + sArr.length){
                        if(sArr[i].compareTo(all.get(j)) > 0){
                            res.add(sArr[i] + "&" + all.get(j) );
                        }else{
                            res.add(all.get(j) + "&" + sArr[i] );
                        }
                    }
                }
            }
            p1 = p1 + sArr.length;
        }
        System.out.println(res);
        return res.toArray();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 题解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档