`
xglv2013
  • 浏览: 37229 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符串全排列 java实现

阅读更多
package permStr;

public class PermStr
{
	public static final int SWITCH = 1; //是否去除重复的开关, 1表示去重, 0表示不去重, 默认为1
	private static boolean need_swap(StringBuilder str, int start, int i)
	{
		if(SWITCH == 0)
			return true;
		else
		{
			for(int j = start; j <= i - 1; j++)
			{
				if(str.charAt(j) == str.charAt(i))
					return false;
			}
			return true;
		}
	}
	public static void permStr(StringBuilder str, int start, int end)
	{
		if(start == end - 1)
		    System.out.println(str.toString());
		for(int i = start; i <= end - 1; i++)
		{
			if(need_swap(str, start, i)) 
			{
				swap(str, start, i);
				permStr(str, start + 1, end);
				swap(str, start, i);
			}
		}
	}
	
	private static void swap(StringBuilder str, int p, int q)
	{
		char temp = str.charAt(q);
		str.setCharAt(q, str.charAt(p));
		str.setCharAt(p, temp);
	}
	public static void main(String[] args)
	{
		StringBuilder str = new StringBuilder();
		str.append("abca");
		permStr(str, 0 , str.length());
	}
}
0
0
分享到:
评论

相关推荐

    Java实现字符数组全排列的方法

    主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下

    Java_字符串全排列大全_(已解决重复问题)

    Java写的源码,解决各种字符串全排列问题,已解决重复问题,经过上机调试可直接运行

    java实现字符串的全排列

    主要为大家详细介绍了java实现字符串的全排列,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java递归实现字符串全排列与全组合

    主要为大家详细介绍了Java递归实现字符串全排列与全组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    输出n个字符的全排列(没有重复字符)

    简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。

    彻底理解全排列算法

    全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。

    algorithms:java的一些算法实现

    : 字典树,用于高效存储、查找字符串单词。 : 能够获取大顶堆、小顶堆以及TopK过滤器。 : 给定一个序列,求按字典序的下一个排列。 : 洗牌算法,即把一个列表随机打乱。 : 列表旋转和移动。 : B树,支持CURD操作。 :...

    leetcode中国-LeetcodeSolution:LeetCode题目-Java解法(持续更新)

    字符串转换整数 (atoi) string 11 盛最多水的容器 double pointer 15 三数之和 array 16 最接近的三数之和 array 17 电话号码的字母组合 backtracking 22 括号生成 backtracking 24 两两交换链表中的节点 dfs 36 ...

    程序员面试攻略 part1(共2个)

    6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题109 7.1 计算机图形109 7.2 位操作符110 7.3 结构化查询语言112 7.4 并发程序设计技术...

    程序员面试攻略part 2(共2个)

    6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题109 7.1 计算机图形109 7.2 位操作符110 7.3 结构化查询语言112 7.4 并发程序设计技术...

    javalruleetcode-leetcode:力扣算法题解

    字符串转换整数 盛水最多得容器 括号生成 搜索旋转排序数组 全排列 跳跃游戏 合并区间 LRU缓存机制 翻转字符串里的单词 二叉树的右视图 岛屿数量 数字范围按位与 生命游戏 设计推特 水壶问题 两数相加II 01矩阵 单词...

    《Java基础》实验题和课程设计补充题.doc

    6- 10显示字符串中每个字符的Unicode值。 6-11例6.4Person对象信息管理增加功能,见思考题6-3。 6- 12Friends对象信息管理,图形用户界面类似例6.4,Friends类声明见教材实验3。6- 13Student对象信息管理,见思考题6-3 ...

    leetcode周赛有原题吗-leetcode:leetcodepractice(Java),包含《剑指offer》和少量《leetbook》

    字符串转换整数 (atoi) 中等 盛最多水的容器 中等 罗马数字转整数 简单 0014 最长公共前缀 简单 三数之和 中等 0020 有效的括号 简单 0021 合并两个有序链表 简单 0026 删除排序数组中的重复项 简单 0027 移除元素 ...

    电子商务大赛试题.doc

    " " A、搜索引擎注册 " " B、交换链接 " " C、电子邮件 " " D、网络社区 " " 答案: " " " " 4、将指定的字符在一定位数内进行全排列,得出验证字符串的密码破解方法是( )。 " " A、暴力解密 " " B、字典解密 " ...

Global site tag (gtag.js) - Google Analytics