小言_互联网的博客

面试题:返回给定长度n的数组

264人阅读  评论(0)

题目

现有两个数组 A{“a1”,“a2”,“a3”…}、B{“b1”,“b2”,“b3”…};
按照a1,a2,b1,a3,a4,b2…的序列,返回一个给定的长度n的数组

public static void main(String[] args) {

        String[] str1 = {"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10"};
        String[] str2 = {"b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10"};
        String[] strings = backArray(str1, str2, 13);
        System.out.println("strings = " + strings);
    }

    private static String[] backArray(String[] str1, String[] str2, int n) {
        int a = 1;
        int b = 0;
        List<String> list = CollUtil.newArrayList();
        //根据str1的长度,判定这个长度里面有多少个奇数
        for (int i = 0; i < str1.length; i++) {
            if (i % 2 != 0) {
                b = b + 1;
            }
        }
        //所给定的n一定是小于等于str1的长度与奇数个数之和
        if (n <= str1.length + b) {
            //集合的长度一定与n相等
            for (int i = 0; list.size() < n; i++) {
                //无论i是奇数还是偶数,str1的元素都得加入集合
                list.add(str1[i]);
                if (i % 2 != 0 && list.size() < n) {
                    list.add(str2[i - a]);
                    a++;
                }
            }
        }else {
            System.out.println("给定的长度n不合法,请重新输入!");
        }
        String[] strings = ArrayUtil.toArray(list, String.class);
        return strings;
    }
}

代码中的CollUtil、ArrayUtil都是Hutool工具类,除此之外还有很多常用的工具类,分别我在Hutool工具集之DateUtil(日期时间工具)详解使用Hutool工具集之常用工具类详解使用(一)Hutool工具集之常用工具类详解使用(二)中都有提到,并且我也会持续更新Hutool的其他工具类,希望关注并提出宝贵意见!


转载:https://blog.csdn.net/Eric__JY/article/details/102465732
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场