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());
}
}
分享到:
相关推荐
主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下
Java写的源码,解决各种字符串全排列问题,已解决重复问题,经过上机调试可直接运行
主要为大家详细介绍了java实现字符串的全排列,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了Java递归实现字符串全排列与全组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。
全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。
: 字典树,用于高效存储、查找字符串单词。 : 能够获取大顶堆、小顶堆以及TopK过滤器。 : 给定一个序列,求按字典序的下一个排列。 : 洗牌算法,即把一个列表随机打乱。 : 列表旋转和移动。 : B树,支持CURD操作。 :...
字符串转换整数 (atoi) string 11 盛最多水的容器 double pointer 15 三数之和 array 16 最接近的三数之和 array 17 电话号码的字母组合 backtracking 22 括号生成 backtracking 24 两两交换链表中的节点 dfs 36 ...
6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题109 7.1 计算机图形109 7.2 位操作符110 7.3 结构化查询语言112 7.4 并发程序设计技术...
6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题109 7.1 计算机图形109 7.2 位操作符110 7.3 结构化查询语言112 7.4 并发程序设计技术...
字符串转换整数 盛水最多得容器 括号生成 搜索旋转排序数组 全排列 跳跃游戏 合并区间 LRU缓存机制 翻转字符串里的单词 二叉树的右视图 岛屿数量 数字范围按位与 生命游戏 设计推特 水壶问题 两数相加II 01矩阵 单词...
6- 10显示字符串中每个字符的Unicode值。 6-11例6.4Person对象信息管理增加功能,见思考题6-3。 6- 12Friends对象信息管理,图形用户界面类似例6.4,Friends类声明见教材实验3。6- 13Student对象信息管理,见思考题6-3 ...
字符串转换整数 (atoi) 中等 盛最多水的容器 中等 罗马数字转整数 简单 0014 最长公共前缀 简单 三数之和 中等 0020 有效的括号 简单 0021 合并两个有序链表 简单 0026 删除排序数组中的重复项 简单 0027 移除元素 ...
" " A、搜索引擎注册 " " B、交换链接 " " C、电子邮件 " " D、网络社区 " " 答案: " " " " 4、将指定的字符在一定位数内进行全排列,得出验证字符串的密码破解方法是( )。 " " A、暴力解密 " " B、字典解密 " ...