最近参加笔试比较多,遇到这道题:
题目: 将一个交错数据合并为一个一维数组
输入: strJaggedArray[][], 由多个一维数组(长度不定,个数不定)组成的交错数组
输出: strArray[], 由strJaggedArray[r][c]中的元素以"&"为分隔符拼合而成, 是strJaggedArray中数组元素的无重复组合(不考虑顺序)
举例:
输入: 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",...}
代码:
public class ExchangeArray {
public static void main(String args[]){
String a[][]=new String[4][];
a[0]=new String[]{"cs","app"};
a[1]=new String[]{"good","cool","dev"};
a[2]=new String[]{"king","of","the","world"};
a[3]=new String[]{"hello","every","one","how","are","you"};
for(int i=0;i<a.length;i++){
System.out.println();
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]+" ");
}
}
System.out.println("the result is:");
String b[]=exchange(a);
for(int i=0;i<b.length;i++){
System.out.print(b[i]+" ");
}
}
public static String[] exchange(String exchange[][]){
String result[][]=exchangeArray(exchange);
return result[0];
}
public static String[][] exchangeArray(String exchange[][]){
if(exchange.length>=2){
int len1=exchange[0].length;
int len2=exchange[1].length;
int len=len1*len2;
String temp []=new String[len];
int index=0;
for(int i=0;i<len1;i++){
for(int j=0;j<len2;j++){
temp[index++]=exchange[0][i]+"&"+exchange[1][j];
}
}
String copy[][]=new String[exchange.length-1][];
for(int i=2;i<exchange.length;i++){
copy[i-1]=exchange[i];
}
copy[0]=temp;
return exchangeArray(copy);
}else{
return exchange;
}
}
}
分享到:
相关推荐
两数组交错排序,当有相同项时可以合并为一项。
自己练习C#交错数组时写的 写的真垃圾啊 大家表下了 丢人啊 怎么不让删啊?
本例是在VS2010的环境中调试的,用的是C#语音主要是交错数组和多维数组的区别
交错数组和多维数组 本容收集的一些关于交错数组和多维数组介绍,希望大家踊跃下载!仅供参考!!
C#中各种数组的性能比较 一维0基数组 交错数组 多维数组
C#数组有很多值得学习的地方,这里我们主要介绍C#交错数组,包括介绍一维数组例、二维数组例、C#交错数组等方面。 数组是在我们编程当中经常用到的,想来大家对数组都有一定的概念,这部分内容将给大家详细讲解数组...
。。。
下面声明一个由三个元素组成的一维数组,其中每个元素都是一个一维整数数组: int[][] jaggedArray = new int[3][]; 必须初始化 jaggedArray 的元素后才可以使用它。可以如下例所示初始化该元素: jaggedArray[0]...
主要介绍了C#交错数组用法,较为详细的分析了交错数组的概念、用法并实例分析了交错数组的使用技巧,需要的朋友可以参考下
用三种方法实现Windows窗体杨辉三角,分别是一维数组、二维数组、交错数组
merge-stream, 将多个流合并为一个交错流 合并流合并( 交错) 一组流。 概要var stream1 = new Stream();var stream2 = new Stream();var merged = mergeStream(stream1,
Pascal三角形在中国又称为杨辉三角形,它是C语言中常用的一个教学案例,常常用于训练和巩固循环、循环嵌套、二维数组等知识要点。但多数Pascal三角形教学案例中,仅是计算Pascal三角形结果并将其直接输出。训练的...
在本篇文章里小编给大家整理的是关于C#交错数组知识点分析,需要的朋友们参考下。
将两个单链表中的节点交错合并成一个.cpp
数组是一种数据结构,其声明方式如下: type[] arrayName; 数组具有以下属性: 1.数组可以是一维、多维或交错的。 2.数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。 3.交错数组是数组的...
C#上机考试试题,对刚刚学C#的同学有很好的帮助,期末上机考试试题,可以练习,对于.net方向的同学很有帮助
Three Phase Interleaved Vienna PFC Rectifier 三相无桥PFC 交错维也纳