给定一个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/

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2021.4.4激活码_通用破解码

    phpstorm2021.4.4激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    43
  • 软件测试常考面试题-软件测试面试宝典(一篇足矣)

    https://blog.csdn.net/mj813/article/details/52451355,对原文进行整理问:软件测试的原则?答:https://blog.csdn.net/weixin_30363263/article/details/102986878问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。1、将问题提交到缺陷…

    2022年4月7日
    38
  • Java链表——创建链表对象

    Java链表——创建链表对象链表是一种简单的数据结构。由两部分构成,数值部分和指针部分。前一部分用来存储数据,后一部分用于指向下一个数据。形成一个链状的结构。​​​​​​​…

    2022年5月8日
    98
  • 使用nginx配置二级域名

    使用nginx配置二级域名最近想把三个项目配在一个服务器上,于是想使用nginx配置二级域名实现。1.域名添加解析我的是阿里云的域名,所以首先给自己的域名添加解析。打算使用www.codeliu.com,test1.codeliu.com,test2.codeliu.com这三个域名,其中test1.codeliu.com,test2.codeliu.com作为二级域名。2.准备好三个项目ecl…

    2022年5月21日
    31
  • Django(22)Django执行SQL语句

    Django(22)Django执行SQL语句前言Django在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式ext

    2022年7月31日
    7
  • WPF中ListView排序实现「建议收藏」

    WPF中ListView排序实现「建议收藏」要实现ListView点击某一列进行排序,需要处理列点击事件<Windowx:Class=”ListViewSort.MainWindow”xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”Title=”MainWindow”Height=”300″Width=”300″…

    2022年10月3日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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