题目:字符串"aa bb cc dd ee ff hh ii" 每个元素以空格隔开,从这个字符串中随机选择5个输出,要求输出的元素必须符合元素在字符串先后位置,例如输出aa bb cc dd ee 、 aa bb dd ff ii 等等.
解决思路: 递归实现排序组合
实现代码:
public class AnotherCombinationTest {
private static final String str = "aa bb cc dd ee ff hh ii";
public static void main(String args[]) {
int len = 5;
String[] inArrays = str.split(" ");
String[] outArrays = new String[len];
go(1, inArrays, outArrays);
}
private static void go(int level, String[] inArrays, String[] outArrays) {
List<String> inList = new ArrayList<String>();
for (int i = 0; i < inArrays.length; i++) {
String _temp = inArrays[i];
if (inList.contains(_temp)) continue;
inList.add(_temp);
outArrays[level - 1] = _temp;
int nextLevel = level + 1;
if (level == 5) {
System.out.println(Arrays.toString(outArrays));
} else {
go(nextLevel, createNewArray(inArrays, i + 1), outArrays);
}
}
}
/**
* 构建新的待排序选择数组
* @param oldArray
* @param index 已经被选择的元素之前的元素将全部被剔除
* @return
*/
private static String[] createNewArray(String[] oldArray, int index) {
String[] newArray = new String[oldArray.length - index];
for (int i = 0; i < oldArray.length; i++) {
if (i < index) continue;
newArray[i - index] = oldArray[i];
}
return newArray;
}
}
分享到:
相关推荐
在“吴恩达机器学习编程练习二”中,我们聚焦于机器学习中的核心概念——线性与非线性逻辑回归。这个练习是基于Andrew Ng的机器学习课程,它旨在通过实际编程来深化对这些概念的理解。Octave或MATLAB是进行这些练习...
本编程练习旨在加深对C语言中二维数组、指针和函数的理解,通过实际操作提升编程技能。下面我们将深入探讨这些知识点。 首先,二维数组在C语言中被声明为`类型名 数组名[行数][列数]`,例如`int arr[3][4]`创建了一...
《算法导论及其编程练习》是一本深入探讨算法理论与实践的教材,旨在提升编程者对算法的理解和应用能力。该资源包含多个章节,每个章节都聚焦于特定的算法思想和方法,通过丰富的编程练习来巩固学习成果。下面将详细...
C#语言编程练习是针对初学者设计的一系列实践项目,旨在帮助他们掌握C#这门强大的面向对象编程语言。C#是由微软开发的一种现代、类型安全的编程语言,广泛应用于开发Windows应用程序、游戏开发(尤其是Unity引擎)、...
在本资源中,我们主要关注的是"C++ Primer Plus"这本书的第二章编程练习。C++ Primer Plus是一本经典的C++入门教程,对于初学者和有经验的程序员来说都是极好的学习资料。第二章通常会涉及C++的基础知识,包括语言的...
本资料包含了一些在Visual Studio 2010环境下编写的C#基础编程练习题,这些练习题旨在帮助学习者巩固和提升C#编程技能。 1. 变量与数据类型:C#中变量是用来存储数据的容器,包括基本数据类型(如int、float、bool...
在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者检查自己的理解和解决方法。 一、Java基础 Java的基础包括语法、数据类型、变量、...
本资源提供的"java语言程序设计基础篇课后编程练习答案"是一个非常宝贵的参考资料,可以帮助学习者检验自己的学习成果,理解并巩固Java编程的基本概念和技术。 在Java编程中,变量是存储数据的容器,分为基本数据...
第二周的编程练习主要关注的是实际操作,通过训练和测试数据来增强对概念的理解。 首先,我们要了解神经网络的基本结构。它是由多层节点(称为神经元)组成的,每一层都与下一层的神经元相连。这些连接带有权重,...
Python 编程练习题和答案 Python 是一种流行的高级编程语言,广泛应用于Web开发、数据分析、人工智能等领域。作为一名 Python 开发者,了解 Python 的基本语法和编程技巧是非常重要的。本资源汇集了一些常见的 ...
C Primer Plus (第五版)中文版——第 2 章 编程练习参考程序
c++_primer_plus(第六版)第二至第六章课后编程练习全部答案
标题中的“50道C-C++编程练习题程序.rar”表明这是一个包含50个编程练习的压缩文件,涉及C和C++两种编程语言。这些练习题旨在帮助学习者熟悉并对比这两种语言的不同之处,同时提升编程技能。由于是用Visual Studio ...
对于计算机二级C语言的编程练习,考生需要熟练运用条件语句(if-else)和循环结构(for/while)。在这个特定的题目中,我们需要利用这些控制结构来检查输入的数字是否满足条件。例如,可以先用模运算符(%)检查数字对...
这个压缩包文件"计算机二级c语言资料_计算机二级c语言编程练习题之求求二维数组周边元素之和"提供了一个具体的实例,你可以下载后运行代码,观察输出结果,同时动手修改代码以适应不同的数组大小和题目需求,以此...
汇编语言编程编程练习 本文档主要介绍汇编语言编程编程练习,通过两个实验题目,演示了汇编语言编程的应用和技巧。 一、实验题一:非数值运算编程 实验目的:通过非数值运算(如统计、分类、排序、代码转换等)...
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之删除字符串指定下标的字符
在"B站 Python Pandas 数据分析,编程练习100例"这个主题中,我们主要探讨的是如何使用Python的Pandas库进行数据处理和分析。Pandas是Python中一个强大的数据分析工具,它提供了丰富的数据结构(如DataFrame和Series...
【Python编程练习题详解】 在Python编程领域,不断练习是提升技能的关键。"Python编程练习题,用Python写的各种编程练习题.zip" 这个压缩包文件提供了丰富的实践机会,帮助学习者巩固基础,理解Python语言的核心...
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之求除一个2×m整型二维数组中最大元素的值