剑指-字符串排列
来源:互联网 发布:个推公司怎么样知乎 编辑:程序博客网 时间:2024/06/05 23:39
题目:
输入一个字符串,打印出该字符串中字符的所有排列. 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,nca,cab,cba.
思路:
首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面的字符交换. 第二步固定第一个字符串,求后面所有字符的排列. 这个时候扔把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符. 然后把第一个字符逐一和它后面的字符交换.
public static void main(String[] args) { String str = "abc"; print(str);}private static void print(String str) { print(str.toCharArray(), 0);}private static void print(char[] str, int starIndex) { if (starIndex == str.length - 1) { System.out.println(Arrays.toString(str)); } for (int i = starIndex; i < str.length; i++) { char tmp = str[i]; str[i] = str[starIndex]; str[starIndex] = tmp; print(str, starIndex + 1); tmp = str[i]; str[i] = str[starIndex]; str[starIndex] = tmp; }}
0 0
- 剑指offer:字符串排列
- 剑指-字符串排列
- 剑指offer--字符串排列
- 剑指Offer------字符串的排列(全排列)
- 剑指offer:字符串的排列(字符串全排列)
- 【剑指offer】字符串的排列
- 剑指offer28--字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- 剑指offer--字符串的排列
- 剑指Offer-28-字符串排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- [剑指offer]字符串的排列
- 剑指Offer—字符串排列
- 《剑指offer》-字符串的排列
- 狸猫的笔试——集合
- 深入理解ThreadLocal
- java分布式都有哪些知识点
- POJ 2253 Frogger
- centOS 安装nginx
- 剑指-字符串排列
- 在csdn里markdown感受
- 安卓谷歌电子市场学习笔记系列——RatingBar
- U盘 win7 选择要安装驱动程序
- iOS 中Block的使用场景
- JS使用ajax从xml文件动态获取数据显示的方法
- InputStream——FileInputStream使用示例
- Java学习笔记 Struts2拦截器实现权限登录
- Java在linux系统的部署(2): 系统环境的安装——更换免费的Yum源(转载)