给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 print-all-combinations-of-given-length

给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 print-all-combinations-of-given-length

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

// 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合

/*

Input: 

set[] = {‘a’, ‘b’}, k = 3

Output:

aaa

aab

aba

abb

baa

bab

bba

bbb

Input: 

set[] = {‘a’, ‘b’, ‘c’, ‘d’}, k = 1

Output:

a

b

c

d

package recursion;

import java.util.ArrayList;

public class N_sets_form_length_k_string {

	// 给出一个set的字符和一个正数k,求全部由这个set能组成长度为k的字符串集合
	/*
	 Input: 
	set[] = {'a', 'b'}, k = 3
	
	Output:
	aaa
	aab
	aba
	abb
	baa
	bab
	bba
	bbb
	
	
	Input: 
	set[] = {'a', 'b', 'c', 'd'}, k = 1
	Output:
	a
	b
	c
	d
	 
	 */
	public static void main(String[] args) {
		ArrayList<Character> set = new ArrayList<Character>();
		set.add('a');
		set.add('b');
		
		int k = 3;
		ArrayList<String> al = new ArrayList<String>();
		StringBuilder sb = new StringBuilder();
		rec(set, k, al, sb);
		
		System.out.println(al);
	}
	
	// 观察到选定第一个字符后,问题就转化为k-1的递归问题。而set中的每个元素都能充当第一个字符。

// 结束条件就是k为0时。 public static void rec(ArrayList<Character> set, int k, ArrayList<String> al, StringBuilder sb){ if(k == 0) { al.add(new String(sb)); return; } for(int i=0; i<set.size(); i++) { sb.append(set.get(i)); rec(set, k-1, al, sb); sb.deleteCharAt(sb.length()-1); // 善用StringBuilder来删除最后一个字符 } }}

http://www.geeksforgeeks.org/print-all-combinations-of-given-length/

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117415.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Drupal开发学习入门指引[通俗易懂]

    Drupal开发学习入门指引[通俗易懂]我是云客,《云客drupal8源码分析》系列的作者,伴随着drupal8第一个正式版本发布到现在,该系列已经发布100期,超过60万字,作为中国投入精力最大、同时也是时间最早的第一批用户之一,云客觉得有义务帮助初学者准备好行囊,叮嘱好一路上的注意事项,之前也零星写过一些入门方面的资料,会在本文末给出链接(这些资料也很值得参考),本篇将为您全面整理需要的一切和规划学习步骤,这里假定您是一个刚刚学会p…

  • 在Anaconda下安装Pytorch的超详细步骤「建议收藏」

    在Anaconda下安装Pytorch的超详细步骤「建议收藏」近几年来,pytorch的发展速度越来越快,在github、CSDN等开源网站上下载的源代码逐渐由tensorflow向pytorch转变。近期在看论文时需要对代码进行复现,在安装pytorch时遇到了很多问题,将整个过程写出来供大家借鉴学习。注:在进行安装的过程中,通过cmd命令框输入命令发现找不到文件,说明环境变量没有配置好。此方法不需要配置环境变量。

  • FFM算法 Python实现

    FFM算法 Python实现本算法是CTR中的系列算法之一,具体的原理就不说了。网上其他的博客一大堆。都是互相抄来抄去,写上去之后容易让人误会。因此我只传上代码实现部分。大家做个参考。这里我们的FFM算法是基于Tensorflow实现的。为什么用Tensorflow呢?观察二次项,由于field的引入,Vffm需要计算的参数有nfk个,远多于FM模型的nk个,而且由于每次计算都依赖于乘以的xj的field,所以…

  • MySQL数据库:分区Partition

    MySQL数据库:分区Partition

  • 删除LDSGameMaster文件夹[通俗易懂]

    删除LDSGameMaster文件夹[通俗易懂]1.在网上搜在注册表上搜LDSGameMaster相关文件,删除——刷新——删除,直到全部删除完,重启删除,还是不行。2.在LDSGameMaster文件夹里的后缀为sys文件,修改名称,在其后边加一个apk,然后重启电脑,直接删除然后就可以了。不知道有没有跟第一步有关系。…

  • 死锁原因总结

    死锁原因总结

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号