面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba)

写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba?

import java.util.ArrayList;

import java.util.List;

public class NumTest {

public static void main(String[] args) {

String s="ABC";//原字符串

List<String> result = list(s,"");//列出字符的组合,放入result

System.out.println(result.size());;

System.out.println(result);

}

/**

* 列出基础字符串(base)的所有组合

* @param base 以该字符串作为基础字符串,进行选择性组合。

* @param buff 所求字符串的临时结果

* @param result 存放所求结果

*/

public static List<String> list(String base,String buff){

List<String> result = new ArrayList<String>();//存放结果信息。

if(base.length()<=0){

result.add(buff);

}

for(int i=0;i<base.length();i++){ List<String>temp=list(newStringBuilder(base).deleteCharAt(i).toString(),buff+base.charAt(i));

result.addAll(temp);

}

return result;

}

}

原文发布于微信公众号 - java学习(javaxxf)

原文发表时间:2017-11-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据钻研

Java集合类操作优化经验总结

本文首先针对 Java 集合接口进行了一些介绍,并对这些接口的实现类进行详细描述,包括 LinkedList、ArrayList、Vector、Stack、Ha...

393170
来自专栏desperate633

LintCode 用递归打印数字题目分析代码

recursion(i) { if i > largest number: return results.add(i) recursion(i + 1)...

7710
来自专栏javathings

为什么说 Java 的泛型是伪泛型?

Java 的泛型是伪泛型, 也就是骗骗编译器的。运行期的泛型类型,被擦除了,因此,在运行期,ArrayList<String> 和 ArrayList<int>...

49020
来自专栏java初学

13.2 具体的集合

28390
来自专栏黑泽君的专栏

Java集合学习总结

18630
来自专栏kevindroid

StringBuilder,String与StringBuffer 的异同

15150
来自专栏杨熹的专栏

【LEETCODE】模拟面试-39. Combination Sum

和subset区别:规定了子集的sum==target 注意,这里传递的起始位置是i,而不是position+1,but why??? helper(res, ...

29350
来自专栏Java技术栈

Java集合从菜鸟到大神演变

先来看一张集合概况图,这里从上到下列举了几个最经常用的集合 ? 1、集合接口 java.util.Collection 是一个集合接口。它提供了对集合对象进行基...

44760
来自专栏java一日一条

集合类操作优化经验总结

在实际的项目开发中会有很多的对象,如何高效、方便地管理对象,成为影响程序性能与可维护性的重要环节。Java 提供了集合框架来解决此类问题,线性表、链表、哈希表等...

9120
来自专栏尾尾部落

[LeetCode]Degree of an Array 数组的度 [LeetCode]Degree of an Array 数组的度

链接:https://leetcode.com/problems/degree-of-an-array/description/ 难度:Easy 题目:69...

12820

扫码关注云+社区

领取腾讯云代金券