`
buaixianchen
  • 浏览: 24114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

编程练习(二)

阅读更多

题目:字符串"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语言中二维数组、指针和函数的理解,通过实际操作提升编程技能。下面我们将深入探讨这些知识点。 首先,二维数组在C语言中被声明为`类型名 数组名[行数][列数]`,例如`int arr[3][4]`创建了一...

    算法导论及其编程练习

    《算法导论及其编程练习》是一本深入探讨算法理论与实践的教材,旨在提升编程者对算法的理解和应用能力。该资源包含多个章节,每个章节都聚焦于特定的算法思想和方法,通过丰富的编程练习来巩固学习成果。下面将详细...

    C#语言编程练习

    C#语言编程练习是针对初学者设计的一系列实践项目,旨在帮助他们掌握C#这门强大的面向对象编程语言。C#是由微软开发的一种现代、类型安全的编程语言,广泛应用于开发Windows应用程序、游戏开发(尤其是Unity引擎)、...

    C++ Primer Plus 编程练习源码工程 第2章

    在本资源中,我们主要关注的是"C++ Primer Plus"这本书的第二章编程练习。C++ Primer Plus是一本经典的C++入门教程,对于初学者和有经验的程序员来说都是极好的学习资料。第二章通常会涉及C++的基础知识,包括语言的...

    C#基础编程练习题

    本资料包含了一些在Visual Studio 2010环境下编写的C#基础编程练习题,这些练习题旨在帮助学习者巩固和提升C#编程技能。 1. 变量与数据类型:C#中变量是用来存储数据的容器,包括基本数据类型(如int、float、bool...

    Java课后编程练习题答案

    在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者检查自己的理解和解决方法。 一、Java基础 Java的基础包括语法、数据类型、变量、...

    java语言程序设计基础篇课后编程练习答案

    本资源提供的"java语言程序设计基础篇课后编程练习答案"是一个非常宝贵的参考资料,可以帮助学习者检验自己的学习成果,理解并巩固Java编程的基本概念和技术。 在Java编程中,变量是存储数据的容器,分为基本数据...

    吴恩达 神经网络与深度学习 第二周编程练习含训练和测试数据

    第二周的编程练习主要关注的是实际操作,通过训练和测试数据来增强对概念的理解。 首先,我们要了解神经网络的基本结构。它是由多层节点(称为神经元)组成的,每一层都与下一层的神经元相连。这些连接带有权重,...

    python编程练习题和答案.pdf

    Python 编程练习题和答案 Python 是一种流行的高级编程语言,广泛应用于Web开发、数据分析、人工智能等领域。作为一名 Python 开发者,了解 Python 的基本语法和编程技巧是非常重要的。本资源汇集了一些常见的 ...

    C Primer Plus (第五版)中文版——第 2 章 编程练习参考程序

    C Primer Plus (第五版)中文版——第 2 章 编程练习参考程序

    c++_primer_plus(第六版)课后编程练习答案

    c++_primer_plus(第六版)第二至第六章课后编程练习全部答案

    50道C-C++编程练习题程序.rar

    标题中的“50道C-C++编程练习题程序.rar”表明这是一个包含50个编程练习的压缩文件,涉及C和C++两种编程语言。这些练习题旨在帮助学习者熟悉并对比这两种语言的不同之处,同时提升编程技能。由于是用Visual Studio ...

    计算机二级c语言资料-计算机二级c语言编程练习题之能被7或11整除的数.zip

    对于计算机二级C语言的编程练习,考生需要熟练运用条件语句(if-else)和循环结构(for/while)。在这个特定的题目中,我们需要利用这些控制结构来检查输入的数字是否满足条件。例如,可以先用模运算符(%)检查数字对...

    计算机二级c语言资料-计算机二级c语言编程练习题之求求二维数组周边元素之和.zip

    这个压缩包文件"计算机二级c语言资料_计算机二级c语言编程练习题之求求二维数组周边元素之和"提供了一个具体的实例,你可以下载后运行代码,观察输出结果,同时动手修改代码以适应不同的数组大小和题目需求,以此...

    汇编语言编程编程练习.doc

    汇编语言编程编程练习 本文档主要介绍汇编语言编程编程练习,通过两个实验题目,演示了汇编语言编程的应用和技巧。 一、实验题一:非数值运算编程 实验目的:通过非数值运算(如统计、分类、排序、代码转换等)...

    计算机二级c语言资料-计算机二级c语言编程练习题之删除字符串指定下标的字符.zip

    计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之删除字符串指定下标的字符

    B站 Python Pandas 数据分析,编程练习100例

    在"B站 Python Pandas 数据分析,编程练习100例"这个主题中,我们主要探讨的是如何使用Python的Pandas库进行数据处理和分析。Pandas是Python中一个强大的数据分析工具,它提供了丰富的数据结构(如DataFrame和Series...

    Python编程练习题,用Python写的各种编程练习题.zip

    【Python编程练习题详解】 在Python编程领域,不断练习是提升技能的关键。"Python编程练习题,用Python写的各种编程练习题.zip" 这个压缩包文件提供了丰富的实践机会,帮助学习者巩固基础,理解Python语言的核心...

    计算机二级c语言资料-计算机二级c语言编程练习题之求除一个2×m整型二维数组中最大元素的值.zip

    计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之求除一个2×m整型二维数组中最大元素的值

Global site tag (gtag.js) - Google Analytics